您的位置:首页 > 编程语言 > C语言/C++

大端模式和小端模式的判别

2016-01-30 17:21 323 查看
在计算机系统中,我们是以字节为单位的,每个字节8bit,对于多位数据,如16bit,32bit,就要用多个寄存器,而存放顺序分两种:大端模式(Big-Endian)和小端模式(Little-Endian)。常用的X86结构是小端模式,大部分ARM,DSP都为小端模式。计算机网络传输使用的是大端模式。

例子:

存放数据0x 12 34 56 78,大端模式如下:

地址

数据

0x00

0x12

0x01

0x34

0x02

0x56

0x03

0x78

大端模式的存储方式是数据高位放低地址位,低位放高地址位。

小端模式如下:

地址

数据

0x00

0x78

0x01

0x56

0x02

0x34

0x03

0x12

小端模式的存储方式是数据高位放高地址位,数据低位放低地址位。

大端模式和小端模式两种存储方式区别在于大端模式更贴近人的阅读习惯,而小端模式更贴近机器思想。

联合体存储数据是由内存的低位开始存起,而且联合体内变量公用存储空间,可以通过这个特性来判断CPU工作的模式。

void BigOrLittle()
{
union w
{
int a;
char b;
}check;
check.a = 1;
if (check.b == 1)
{
cout << "CPU是小端模式。" << endl;
}
else
{
cout << "CPU是大端模式。" << endl;
}
}


 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ 操作系统