Chinaunix首页 | 论坛 | 博客
  • 博客访问: 256550
  • 博文数量: 54
  • 博客积分: 2915
  • 博客等级: 少校
  • 技术积分: 486
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-21 12:20
个人简介

这个人很懒,什么都没有留下

文章分类
文章存档

2013年(1)

2012年(6)

2011年(11)

2010年(16)

2009年(20)

我的朋友

分类: 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方式

阅读(1252) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~