레이블이 checksum인 게시물을 표시합니다. 모든 게시물 표시
레이블이 checksum인 게시물을 표시합니다. 모든 게시물 표시

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

[UEL] 아라라트 아르메니아 vs 우니베르시타테아 크라이오바 축구 경기 전략 확인

 스포츠 배팅 전략 전문가로서 '3신호 종합' 원칙과 성과 분석 기반 판정을 최우선으로 하여 신뢰도를 높이고 리스크를 최소화하는 방향으로 전략을 수립했습니다. [ 최종 전략 요약] 현재 4개 경기로 구성된 슬립 중, 검증된 원칙에 따라 ...