Big Endian and Little Endian

2016-01-29 18:34 1 1 收藏

Big Endian and Little Endian,Big Endian and Little Endian

【 tulaoshi.com - Linux 】

Big Endian and Little Endian
谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,什么又是little endian呢?     其实big endian是指低地址存放最高有效字节(MSB),而little endian则是低地址存放最低有效字节(LSB)。
     用文字说明可能比较抽象,下面用图像加以说明。比如数字0x12345678在两种不同字节序CPU中的存储顺序如下所示:Big Endian   低地址                                            高地址   ----------------------------------------->   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |     12     |      34    |     56      |     78    |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Little Endian   低地址                                            高地址   ----------------------------------------->   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |     78     |      56    |     34      |     12    |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     从上面两图可以看出,采用big endian方式存储数据是符合我们人类的思维习惯的。而little endian,!@#$%^&*,见鬼去吧 -_-|||     为什么要注意字节序的问题呢?你可能这么问。当然,如果你写的程序只在单机环境下面运行,并且不和别人的程序打交道,那么你完全可以忽略字节序的存在。但是,如果你的程序要跟别人的程序产生交互呢?在这里我想说说两种语言。C/C++语言编写的程序里数据存储顺序是跟编译平台所在的CPU相关的,而JAVA编写的程序则唯一采用big endian方式来存储数据。试想,如果你用C/C++语言在x86平台下编写的程序跟别人的JAVA程序互通时会产生什么结果?就拿上面的0x12345678来说,你的程序传递给别人的一个数据,将指向0x12345678的指针传给了JAVA程序,由于JAVA采取big endian方式存储数据,很自然的它会将你的数据翻译为0x78563412。什么?竟然变成另外一个数字了?是的,就是这种后果。因此,在你的C程序传给JAVA程序之前有必要进行字节序的转换工作。     无独有偶,所有网络协议也都是采用big endian的方式来传输数据的。所以有时我们也会把big endian方式称之为网络字节序。当两台采用不同字节序的主机通信时,在发送数据之前都必须经过字节序的转换成为网络字节序后再进行传输。ANSI C中提供了下面四个转换字节序的宏。

来源:https://www.tulaoshi.com/n/20160129/1506380.html

延伸阅读
big上的图片怎么加链接?   1)打开big后点击页面下方。 2)进入后再选择一种方式上传照片,比如:相册。 3)选择一个版块把画布发布上去,比如:潮流。 4)进入后再点击红色边框内的。 5)然后输入链接在点击确定。 6)最后再点击发送即可。         注 ...
little eat海苔鸡蛋饼 1. 将鸡蛋,海苔,盐,淀粉一起搅拌 2. 我用的是煮面的锅,在锅中放点油,倒入搅拌好的鸡蛋液,小心鸡蛋煎糊,用小火煎。 3. 在煎好的海苔鸡蛋饼上撒上海苔。
标签: PS教程
1、 首先按CTRL+N新建一个500*500px的背景文档,按SHIFT+F5填充背景为灰色。制作好背景,使用文字工具选中我们下载的字体Porky’s。输入英文,字体颜色为白色,大小为200点。                               ...
手机淘宝big怎么参加主题?   1)打开手机淘宝,点击,接着往下拉到底部。   2)找到专栏,点击专区,在页面点击一个主题。   3)点击,在相册里找到自己想要拿来参加的图片,添加完点击。  

经验教程

719

收藏

38

精华推荐

Foxmail如何阅读BIG5码邮件

Foxmail如何阅读BIG5码邮件

我是你的小哈尼

Little White Lies杂志内页版式设计作品欣赏

Little White Lies杂志内页版式设计作品欣赏

余悸反驳

让TRichEdit支持BIG5内码

让TRichEdit支持BIG5内码

酸辣粉下啤酒

热门标签

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部