什么是大端模式和小端模式
在各种体系的计算机中通常采用的字节存储机制主要有两种: big-endian和little-endian,即大端模式和小端模式。
大端模式(big-endian):对于非char类型,例如整型和长整型,低地址存放数据的的高字节,高地址存放的是数据的低地址。
小端模式(little-endian):对于整型、长整型,低地址存放的是数据的低位,高地址存放的是数据的高位。例如内存中存放如下整型数据:
地址:0x0000 0x0001 0x0002 0x0003
数据: 0x12 0x34 0x56 0x78
当我们读取32位整型变量,若为大端模式,则其值为0x12345678,小端模式,其值为0x78563412。0x12345678在两种模式上存放如下:
地址: 0x0000 0x0001 0x0002 0x0003
大端: 0x12 0x34 0x56 0x78
小端: 0x78 0x56 0x34 0x12
软件怎么测试大端小端模式
软件判断大端模式和小端模式的方法很多,这里只举一个简单的例子:
Int main(void)
{
Unsignedint num, *p;
P=# //p 指向num
Num=0;
*(char *)p=0xfe; //p占用1字节,是num的低位
If(0xfe==num) //低位字节放在了整型的低位,
Printf(“this is little-endian\n”);
Else
Printf(“this is big-endian\n”);
Return 0;
}