01/10/2018, 15:21
Vấn đề ghi 1 số int 4 byte xuống file trong C++. Little Endian & Big Endian
Mình cần ghi 1 số nguyên xuống file.
int length = 13;
fileIoStream.write((char*)&length, 4);
khi mở file với notepad++ , bin to hex thì ra giá trị = 0D202020
giờ mình byteoder nó để nó nằm ngược lại
unsigned length[4];
length[0] = (13 >> 24) & 0xFF;
length[1] = (13 >> 16) & 0xFF;
length[2] = (13 >> 8) & 0xFF;
length[3] = (13 >> 0) & 0xFF;
khi mở file với notepad++ , bin to hex thì ra giá trị = 2020200D
nó đã nằm ngược lại nhưng tại sao lại có thêm số 2 trước mỗi số 0, ghi đúng phải là 0000000D
Vấn đè nằm ở đâu nhỉ
Thank you
Bài liên quan
chắc nằm ở notepad++
Dùng binaryViewer xem nào.
Đúng rồi anh, Cái notepad ++ ngáo ngơ, em chuyển qua vscode xem mã hex là ngon lành ngay.
Do cái notepad++ , e xem trên vscode thì được