我用C打開一個文件並對數據執行CRC32算法。從這裏我得到一個校驗和,我現在要附加到文件中,以便int的位代碼位於文件的位代碼的末尾。但是,當我將整數寫入文件時,所有數字都被解釋爲字符,而不是寫入int的位碼。所以,我想這一點:將二進制數據附加到c中的文件
int r, tmp, sum3;
for(r = 0; r < 25; r+=8){
int s;
sum3 = 0;
for(s = r; s < r+8; s++){
tmp = 1;
int v;
if(binzahl2[s] == '1'){ //binzahl2 contains the bitcode of the checksum as char array
for(v = 7; v > s-r; v--)
tmp*=2;
sum3 += tmp;
}
}
int y=fprintf(file, "%c", (char) sum3);
}
不過,當然每次SUM3大於127有跟投的問題爲char,使作爲字節的第一位數字被寫入0而不是1
是有什麼辦法解決這個問題,以便在字節的開頭寫入1? 或者有(希望)更好的方式來追加正確的二進制數據?
文件輸入和需求文件輸出的例子將有助於澄清您的問題和目標。 – chux
輸入只是一個類似「這是一個測試」的.txt文件。輸出並不重要,它沒有任何意義。將整數的位代碼附加在文件的位代碼末尾非常重要,以便我可以再次運行crc32算法並檢查一切是否正確。 –