小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Big Endian和Little Endian的區(qū)別

 darkhero 2006-11-08

1.故事的起源

“endian”這個詞出自《格列佛游記》。小人國的內(nèi)戰(zhàn)就源于吃雞蛋時是究竟從大頭(Big-Endian)敲開還是從小頭(Little-Endian)敲開,由此曾發(fā)生過六次叛亂,其中一個皇帝送了命,另一個丟了王位。

我們一般將endian翻譯成“字節(jié)序”,將big endian和little endian稱作“大尾”和“小尾”。

2.什么是Big Endian和Little Endian?

在設計計算機系統(tǒng)的時候,有兩種處理內(nèi)存中數(shù)據(jù)的方法。一種叫為little-endian,存放在內(nèi)存中最低位的數(shù)值是來自數(shù)據(jù)的最右邊部分(也就是數(shù)據(jù)的最低位部分)。比如一個16進制數(shù)字0x12345678, 在內(nèi)存存放的方式如下:

           

0111,1000

0101,0110

0011,0100

0001,0010

地址

100

101

102

103

 

 

            另一種稱為big-endian,正好相反,存放在內(nèi)存中最低位的數(shù)值是來自數(shù)據(jù)的最左邊邊部分(也就是數(shù)據(jù)的最高為部分)。比如一個16進制數(shù)字0x12345678, 在內(nèi)存存放的方式如下:

0001,0010

00110100

0101,0110

0111,1000

地址

100

101

102

103

比如某些文件需要在不同平臺處理,或者通過Socket通信。這方面我們可以借助ntohl(), ntohs(), htonl(), and htons()函數(shù)進行格式轉(zhuǎn)換。

3.如何判斷系統(tǒng)是Big Endian還是Little Endian?

/usr/include/中(包括子目錄)查找字符串BYTE_ORDER(或_BYTE_ORDER, __BYTE_ORDER),確定其值。這個值一般在endian.h或machine/endian.h文件中可以找到,有時在feature.h中,不同的操作系統(tǒng)可能有所不同。一般來說,Little Endian系統(tǒng)BYTE_ORDER(或_BYTE_ORDER,__BYTE_ORDER)為1234,Big Endian系統(tǒng)為4321。大部分用戶的操作系統(tǒng)(如windows, FreeBsd,Linux)是Little Endian的。少部分,如MAC OS ,是Big Endian 的。本質(zhì)上說,Little Endian還是Big Endian與操作系統(tǒng)和芯片類型都有關系。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多