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

viết 17:29 ngày 01/10/2018

chắc nằm ở notepad++

Văn Dương viết 17:30 ngày 01/10/2018

Dùng binaryViewer xem nào.

HelloWorld viết 17:33 ngày 01/10/2018

Đúng rồi anh, Cái notepad ++ ngáo ngơ, em chuyển qua vscode xem mã hex là ngon lành ngay.

HelloWorld viết 17:27 ngày 01/10/2018

Do cái notepad++ , e xem trên vscode thì được

Bài liên quan
0