笑含风的个人空间 https://blog.eetop.cn/miaofng [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

endian and ntoh,hton,...

已有 1682 次阅读| 2006-9-3 18:49

天气: 晴朗
心情: 高兴

hton host to net(short int)
ntoh net to host (short int)
htonl host to net (long int)
ntohl net to host (long int)

一般来说,在网络上传递的数据是大端的,这是协议规定的。
而在主机上,可能为小端的,如intel,或大端的powerpc。

大端: big endian
0x03020100 -> 0x03(1st,or low addr) 0x02 0x01 0x00
小端: little endian
0x03020100 -> 0x00(1st,or low addr) 0x01 0x02 0x03

注:(以下出自 http://libai.math.ncu.edu.tw/bcc16/pool/1.33.shtml)

為什麼字元的排序設計,要叫做大頭或小頭呢?雖然從前面的解釋,我們看得出意義,但是這背後其實有一個故事。 Big-Endian 和 Little-Endian 並不是計算機工程師定的名稱,而是英文作家 Jonathan Swift 在將近 300 年前創造的名詞!這個名詞出現於 Swift 創作的著名小說 "Gulliver's Travels",中文通常翻譯作《格利佛遊記》或者《大小人國歷險記》或者《小人國歷險記》之類的,許多讀者大概在童年時期讀過這本書的童話版節譯本。這部故事書裡,有一個虛構的『小人國』,稱為 Lilliput。格利佛意外抵達 Lilliput 的時候,該國正在內戰。內戰分成兩大派系 (沒有派系就沒有內戰):Big-Endian 和 Little-Endian。

Big-Endian 和 Little-Endian 為了一件很可笑的小事而分成派系: Big-Endian (保守派) 堅持要從雞蛋比較大的那一頭敲開蛋殼 (大頭開蛋),而 Little-Endian (改革派) 堅持要從雞蛋比較小的那一頭敲開蛋殼 (小頭開蛋)。雞蛋比較大的那一頭叫做 big-end,因此支持大頭開蛋者就叫做 big-endian;同理,另一派就叫做 little-endian 了。作者其實可能要藉用這個情節,來諷刺當時在英國的政治與宗教時事。後來,計算機科學家也在爭吵關於 byte order 的問題:究竟是把高位的字元放在前面比較好、還是放在後面比較好?一位當時在美國南加大的計算機科學家 Danny Cohen 在 1980 年 4 月 1 日,發表了標題為 "On Holy Wars and a Plea for Peace" 的文章 (後來在 1981 年刊登於 IEEE 的 Computer 期刊),把這場計算機科學家的論戰比喻成格利佛在小人國遇見的 Big-Endian 和 Little-Endian 兩派之內戰。這是非常有趣的譬喻,一直流傳至今,成為這兩種硬體設計理念的正式代名詞。可見,如果童話書讀得透徹,長大後可以應用在偉大的論證上。

Jonathan Swift (1667--1745) 出生於愛爾蘭,跟牛頓 (Issac Newton) 一樣是個遺腹子; Swift (通常譯為『斯威夫特』) 比牛頓年輕 25 歲,雖然是當時英格蘭社會的重要知識份子之一,但是一生的工作主要在神學與文學方面,不曉得他知不知道牛頓的偉大創作。 Swift 傳世的作品主要有三件,1726 年 (59 歲) 出版了《格利佛遊記》。航海、發現、內戰、理性主義與宗教意識的對峙,這些 Swift 時代的主要社會事件,全都以幻想、諷刺的方式,寫在他的小說裡,為他的時代留下幽默的見證。

課外讀物:
[1] "Gulliver's Travels"《格利佛遊記》專門網站 http://www.jaffebros.com/lee/gulliver
[2] Danny Cohen 的原始文件 "On Holy Wars and a Plea for Peace" http://khavrinen.lcs.mit.edu/wollman/ien-137.txt, [mirror]


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 5

    评论
  • 398

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-4 10:37 , Processed in 0.016088 second(s), 13 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部