Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61765
  • 博文数量: 15
  • 博客积分: 1425
  • 博客等级: 上尉
  • 技术积分: 185
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-31 00:34
文章分类

全部博文(15)

文章存档

2009年(2)

2008年(13)

我的朋友
最近访客

分类:

2008-06-20 13:25:15

网络序与主机序

注意: Big Endian 和 Little Endian并不单单由CPU或OS决定,而是两者共同决定的

big endian 网络序
big-endian 网络序 大端字节序
最直观的字节序
地址低位存储值的高位
地址高位存储值的低位
little endian 主机序 小端字节序
最符合人的思维的字节序
地址低位存储值的低位
地址高位存储值的高位
x86系列cpu是little endian


例子:在内存中双字0x01020304(DWORD)的存储方式

内存地址
4000 4001 4002 4003
LE 04 03 02 01
BE 01 02 03 04

例子:如果我们将0x1234abcd写入到以0x0000开始的内存中,则结果为
big-endian little-endian
0x0000 0x12 0xcd
0x0001 0x34 0xab
0x0002 0xab 0x34
0x0003 0xcd 0x12


注:
1、网络与主机字节转换函数:htons ntohs htonl ntohl (s 就是short l是long h是host n是network)
2、不同的CPU上运行不同的操作系统,字节序也是不同的,参见下表。
处理器 操作系统 字节排序
Alpha 全部 Little endian
HP-PA NT Little endian
HP-PA UNIX Big endian
Intelx86 全部 Little endian <-----x86系统是小端字节序系统
Motorola680x() 全部 Big endian
MIPS NT Little endian
MIPS UNIX Big endian
PowerPC NT Little endian
PowerPC 非NT Big endian <-----PPC系统是大端字节序系统
RS/6000 UNIX Big endian
SPARC UNIX Big endian
IXP1200 ARM核心 全部 Little endian
阅读(1151) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-12-17 07:13:44

good

chinaunix网友2008-09-24 17:14:52

还是没有讲出什么是主机序什么是网络序……