在现有的平台上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) |