这个人很懒,什么都没有留下
分类: C/C++
2010-07-29 15:33:26
首先,明确几个概念
1、字节:固定为8位二进制
2、字长:字为计算机一次能处理的数据长度
8位机中为8位二进制 即1个字节
16位机中为16位二进制 即2个字节
32位机中为32位二进制 即4个字节
3、char类型长度:固定为一个字节,即8位二进制
4、int类型长度:固定为一个字长
实例如下:环境为32位机
int i=1;
Big-endian方式下: 0x00 0x00 0x00 0x01
Little-endian方式下:0x01 0x00 0x00 0x00
地址: 1000 1001 1002 1003
获取i的地址,为1000处 &i
强制转换指针类型为char * ,即从地址起点截断1个字节 (char*)&i
此时
Big-endian方式下为:0x00
Little-endian方式下为:0x01
得出如下结论
int i=1;
若*(char*)&i等于1 则为Little-endian方式,否则为Big-endian方式