大端模式与小端模式的区别小解

union

{

    int a;

    char x[2];

}A;

 

A.x[0]=10;

A.x[1]=1;

 

cout<<A.a<<endl;

 

那么运算结果在little-endian模式中的结果为266,那么原因是什么呢

我个人的理解

 

由于是小端模式,那么char x[0]肯定是指向最低的地址的,那么我们假设低地址为4000,那么在400存的数据就是10,以十六进制表示就是0x0a;然4001地址存放的就是0x01;由于存放的最大数据类型是Int型,占有四个字节,因此,地址知道4003;都是0x00;那么在小端模式中的低地址存放的是低字节,因此,

4000    0x0a;

4001    0x01;

4002    0x00;

4003    0x00;

 

因此可得数据为ox10a;对应的十进制为266;

你可能感兴趣的:(大端模式与小端模式的区别小解)