大小尾端

大小尾端

提到体系结构时,经常遇到大小尾端的概念,这里做个总结。
big endian:大尾端,也称大端(高位)优先存储。
little endian:小尾端,也称小端(低位)优先存储。
如下00000000 00000000 00000000 00000001的存储

1
2
3
4
大尾端: 00000000 00000000 00000000 00000001
addr+0 addr+1 addr+2 addr+3 //先存高有效位(在低地址)
小尾端: 00000001 00000000 00000000 00000000
addr+0 addr+1 addr+2 addr+3 //先存低有效位(在低地址)

故要判断机器的体系结构是大尾端还是小尾端,以下程序可以完成任务:

转换函数

1
2
3
4
htons 把unsigned short类型从主机序转换到网络序
htonl 把unsigned long类型从主机序转换到网络序
ntohs 把unsigned short类型从网络序转换到主机序
ntohl 把unsigned long类型从网络序转换到主机序

参考博客