首页 > 代码库 > 字节序
字节序
字节序是指多字节数据在计算机内存中存储或在网络传输时各字节的存储顺序。
常见字节序有:littile-dienan和big-endian。
littile-endian,将低序字节存储在起始地址(符合人的思维);big-endian,将高序字节存储在起始地址(更直观)。
例如:short s = 0xcdfe;变量s在内存中占2个字节,littile-dienan的存储顺序是fe、cd,big-endian的存储顺序是cd、fe。
网络字节序是TCP/IP中规定好的一种数据表示格式,它与具体的cpu类型、操作系统无关,从而保证数据在不同主机间传输是能够被正确解释。网络字节序采用big-endian排序方式。
BSD socket提供的相互转换函数:htons、htonl、ntohs、ntohl。使用littile-endian的主机系统中这些函数会把字节进行转换,使用big-edian的主机系统中这些函数会被定义成空宏。
BIG-ENDIAN、LITTLE-ENDIAN跟CPU有关,每一种CPU不是BIG-ENDIAN就是LITTLE-ENDIAN、。IA架构(Intel、AMD)的CPU中是Little-Endian,而PowerPC 、SPARC和Motorola处理器是Big-Endian。这其实就是所谓的主机字节序。而网络字节序是指数据在网络上传输时是大头还是小头的,在Internet的网络字节序是BIG-ENDIAN。所谓的JAVA字节序指的是在JAVA虚拟机中多字节类型数据的存放顺序,JAVA字节序也是BIG-ENDIAN。
字节序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。