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

[캔들 신호 분석 리포트] [2026년9월3일] 방림 (일봉) "ADX25돌파_횡보탈출" 신호 백테스트 리포트

방림 종목에 대한 "ADX25돌파_횡보탈출" 매수 신호는 적은 표본 수(8건)에도 불구하고 단기적으로 긍정적인 수익률을 보였으나, 과최적화 가능성이 있으며 신호 없는 균등 분할 매수가 누적 수익률 측면에서 더 우수한 결과를 나타냈습니...