关于big-enidan和small-endian

本文探讨了Big-endian与Little-endian的概念及其在不同操作系统中的表现差异,通过Unicode编码的实例,解释了两种字节序在文件存储及显示过程中的具体行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于big-enidan和small-endian:
文中并没有对big和little得“前”得含义解释清楚,于是,有了问题。
以“汉”字为例,unicode编码为6c49:
以windows下得notepad保存为unicode得形式,我们看到结果为“496C”,保存为unicode big endian时,为“6C49”.
当我们以linux下得od命令查看时,我们发现,保存为unicode形式得文件得显示为6C49,后者也相反,
1)我们姑且解释为这是由于od命令得显示差异造成,即故意使低位字节显示在前。就是说,上述unicode保存形式得文件得实际存储仍为496C,但是od命令将他们调换了。
2)但是当我们同样以file文件测试unicode big endian时,发现显示为Little endian,就是说,文件测试得结果时window新建得big endian得文件(保存得形式为高位字节先显示)实际上为little endian形式。于是我们糊涂了:到底什么样得形式为big什么叫little?
我得结论时,所谓得big是指,高位字节存高位,也就是在后面(我们以文件开始为最前),即是说,6C49保存为6C49时就是big;但是od命令显示时,之所以显示为496C,是因为它是按照byte初一,一个一个显示,存在低位得自然先显示,即是说,将一个按照little endian形式存储得usc2编码(2个字节)得低字节显示在前面了;如果是按照big endian时,高字节在后面,自然也就显示为后面。用dump命令可以看到:
dump unicode.txt
Addr 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 2 4 6 8 A C E
-------- ---- ---- ---- ---- ---- ---- ---- ---- ----------------
00000000 fffe 496c .~Il 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值