Checksum c/c++ code example, Add with Carry



#include stdio.h

#include string.h




int DataLen=5;

const char* pData="ABCDE";



unsigned short CalculateChecksum (const unsigned char* pData, int DataLen);



main()




{



unsigned long CS = 0;

unsigned short* psData = (unsigned short*)pData;

for (int Index = 0; Index < (DataLen / 2); Index++, psData++)



CS += *psData;



if (DataLen % 2 != 0)

CS += pData[DataLen - 1];

CS = (CS >> 16) + (CS & 0xFFFF);

CS += (CS >> 16);



printf("%4x", CS);



return (unsigned short) ~CS;



}







-----------------------------



ABCDE




step1.




AB->BA




CD->DC




E->0E




Step2.




Sum




BA+DC+0E




---------------------------------------------


step3.




When you get to lager sums carry must be added back to the original number.




ex. x12345




=x1234+5=x1239

2025년 프로토 승부식 26회차 금요일 축구 경기 배팅 예상

프로토 승부식 26회차 축구 배팅 예상 정리 가장 가능성이 높은 일반 배팅은 바이에른 뮌헨 승리 예상 가장 가능성이 높은 핸디캡 배팅은 센트럴 매리너스 핸디캡 +1 무승부 가장 가능성이 높은 언더오버 배팅은 바야돌리드 언더 2.5 하나더 추가로 배팅 ...