我正在嘗試從二進制文件中讀取unsigned long
號碼。
我在這個方式做這個:從二進制文件中讀取無符號long long
infile.open("file.bin", std::ios::in | std::ios::binary);
char* U=new char[sizeof(unsigned long)];
unsigned long out=0;
infile.read(U, sizeof(unsigned long));
out=static_cast<unsigned long>(*U);
delete[] U;
U=NULL;
infile.close();
,但結果是不正確的。
我的數據6A F2 6B 58 00 00 00 00
女巫應被解讀爲1483469418
但出於就是106
在我的代碼這僅僅是數據
有什麼問題的第一個字節?
我應該如何正確地從文件中讀取unsigned long
?
你期待什麼尾數格式,您使用的是什麼格式?在處理多字節整數值時要注意這一點非常重要。 – tadman
您只是將第一個字節轉換爲無符號長整型。此外,由於遺忘,該方法無法移植。 –
@tadman:文件和系統都是LE – RYN