您的位置:首页 > 其它

字节序 big endian 和 little endian

2009-04-17 22:10 239 查看
Big-Endian 和 Little-Endian 字节排序

字节排序 含义

Big-Endian 一个Word

中的高位的Byte

放在内存中这个Word区域的低地址处。

Little-Endian 一个Word

中的低位的Byte

放在内存中这个Word区域的低地址处。

必须注意的是:表中一个Word的长度是16位,一个Byte的长度是8位。如果一个数超过一个Word的长度,必须先按Word分成若干部分,然后每一部分(即每个Word内部)按Big-Endian或者Little-Endian的不同操作来处理字节。

一个例子:

如果我们将0x1234abcd写入到以0x0000开始的内存中,则结果为

big-endian little-endian

0x0000 0x12 0xcd

0x0001 0x34 0xab

0x0002 0xab 0x34

0x0003 0xcd 0x12

(注意:0xab换算成2进制是10101011,是个8位的数。

测试你的机器是大端还是小端对齐小程序

#include <stdio.h>
#include <stdlib.h>
int main()
{
int x = 1;
if(*(char *)&x == 1)
printf("the machine is little endian");
else
printf("the machine is big endian");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: