標題: 關(guān)于C語言數(shù)組表達 計算校驗和的問題 [打印本頁]

作者: 576951469    時間: 2018-12-2 11:58
標題: 關(guān)于C語言數(shù)組表達 計算校驗和的問題
請問下壇中高手,已知一個unsigned char數(shù)組array[]={0xAB;0x BC,0xAC, 0x00, 00xe, 0x00, 0x00, 0x00, 0x00, 0x99, 0x99, 0x00, 0x00, 0x59},其中的array[3],array[4]兩個字節(jié)為長度表。array[13]為校驗和;需要怎樣才計算校驗和是否為array[13],校驗和為array[0]+array[n......]+array[13].    因為數(shù)組長度可能變化不能用一個一個相加的方式來計算。
我用
unsigned int   m,k;
k=((array[3]<<8)+array[4]);        for( m=0;m<k;m++ )        {checksum+=array[m];}
計算出來好像不對




作者: zailushang316    時間: 2018-12-2 14:37
可以先求出數(shù)組長度,然后累加,求長度:sizeof(array)/sizeof(char), 結(jié)果計算出來(求和不含最后一位)后再做以下操作:checksum%100+checksum/100=0x59了,如果你數(shù)據(jù)給的沒問題的話。
作者: 576951469    時間: 2018-12-2 16:12
zailushang316 發(fā)表于 2018-12-2 14:37
可以先求出數(shù)組長度,然后累加,求長度:sizeof(array)/sizeof(char), 結(jié)果計算出來(求和不含最后一位)后 ...

謝謝你的回答,你說的求和不包含最后一位提醒了我,上邊的計算把最后一位包含進去了,再次謝謝




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1