Chinaunix首页 | 论坛 | 博客
  • 博客访问: 326293
  • 博文数量: 88
  • 博客积分: 2051
  • 博客等级: 大尉
  • 技术积分: 950
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-14 23:59
文章分类

全部博文(88)

文章存档

2012年(3)

2011年(2)

2010年(9)

2009年(14)

2008年(60)

我的朋友

分类: C/C++

2008-11-06 15:11:39

在现有的平台上Intel的X86采用的是Little-Endian,而像Sun的SPARC采用的就是Big-Endian
 
网络是大端格式 比如发送0xABCD  先发D 最后发A在内存中存下来就是高字节存D 低字节存A
 
小端格式是低字节存D 高字节存A
 
因此从网络接受一个整数,原封不动的放到char[4]里面的话,需要做大小端转换
 
同时要记住 在stack里  地址是从高向低扩展的 
 
Big-Endian: 低地址存放高位,如下图:
栈底 (高地址)
---------------
buf[3] (0x78) -- 低位
buf[2] (0x56)
buf[1] (0x34)
buf[0] (0x12) -- 高位
---------------
栈顶 (低地址)

Little-Endian: 低地址存放低位,如下图:
栈底 (高地址)
---------------
buf[3] (0x12) -- 高位
buf[2] (0x34)
buf[1] (0x56)
buf[0] (0x78) -- 低位
---------------
栈顶 (低地址)

 

从这里http://discussion.forum.nokia.com/forum/showthread.php?t=56260

知道symbian os让arm处理器也是工作在小端模式的

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