Daily Archives: August 30, 2019

big endian&little endian

在機器層級的指令集裡有些特定的data type,如int, float 以integer bit representation為例,可分為LSB(least significant bit 代表2^0)和MSB(most significant bit 代表 2^(n-1)) 我們一般書寫二進位的描述,MSB在左邊,LSB在右邊。例如書寫一千二百三十四會先寫 1再寫234 (positional notation),就是big endian(從big end開始)寫法,這在一般程式語言裡numeric literal也是這樣表示。 在記憶體中是以多個byte儲存,就會有哪個byte在低位哪個byte在高位如果方向從MSB開始以byte為單位依序存進記憶體,就是big end=> big endian, 如果方向從LSB開始以byte為單位依序存進記憶體,就是little end=> little endian, 而在記憶體中資料儲存依序的順序是從低位(低位址)開始算。 big endian也叫做network byte order,其實應該是network byte order採用big endian(rfc 1700), 例如ip header裡的total length欄位是跨byte。 … Continue reading

Posted in General | Leave a comment