字节顺序

作者: 唐大方 | 来源:发表于2017-04-11 15:37 被阅读0次

字节存储顺序,简称字节序,又称端序或尾序(英语:Endianness)。是指多字节数据在计算机内存中的存储顺序(即主机字节序);在网络传输时各字节的存储顺序(即网络字节序)。

影响的是多字节类型的数据,比如int,short,long型,而对单字节数据 byte 却没有影响,大部分处理器以相同的顺序处理位元(bit),因此单字节的存放方法和传输方式一般相同。

如果最低有效位最高有效位的前面,则称小端序;反之则称大端序。

例如在C语言中,一个类型为 int 的变量x地址为0x100,它的十六进制为0x01234567, 那么其对应地址表达式&x的值为0x100。且x的四个字节将被存储在内存的0x100, 0x101, 0x102, 0x103位置。而存储的顺序有两种规则:

0x01234567:

0x01是高位,0x67是低位

地址的分布:

0x100、0x101、0x102、0x103

0x100是低地址,0x103是高地址

小端序:

最低有效位在最高有效位的前面,也就是数值的低位存储在内存的低地址,高位存储在内存的高地址。

存储的顺序是:

0x67 0x45 0x23 0x01

大端序:

数值的高位存储在内存的低地址,低位存储在内存的高地址。

存储的顺序是:

0x01 0x23 0x45 0x67

网络字节序:

网络传输一般采用大端序,也被称之为网络字节序,或网络序。IP协议中定义大端序为网络字节序。

IP地址的表示顺序

不同的系统在内存存储多字节数据的方式有所不同,而在网络传输中,数据存储顺序不一定和系统存储顺序一样,因此为保证系统正确性和可移植性,需要利用系统的转换函数进行转换。以Ipv4的地址为例,一个IP地址的四个字节“192.168.1.100”,在PC架构的计算机中,数据的表示是低位优先(little-endian),由前至后是100、1、168、192;而在网络Socket协议所表示的网络传输中,则是高位优先(big-endian),由前至后是192、168、1、100,这需要在处理时通过函数转化。

不同处理器体系与大小端序的对应关系:

Intel架构x86、AMD架构,MOS Technology 6502,Z80,VAX,PDP-11等处理器为Little endian小端序。

Motorola 6800,Motorola 68000,PowerPC 970,System/370,SPARC(除V9外)等处理器为Big endian大端序。

ARM, PowerPC (除PowerPC 970外), DEC Alpha, SPARC V9, MIPS, PA-RISC and IA64的字节序是可自行配置成大端或小端序。

相关文章

  • htonl()与ntohl()

    htonl就是把本机字节顺序转化为网络字节顺序 ntohl就是把网络字节顺序转化为本机字节顺序 h---host ...

  • 字节序

    字节序就是字节在内存中的存储顺序,如果是单字节,这个顺序就无所谓,但是对于多字节,这个顺序就很重要了。根据这个顺序...

  • 字节顺序

    字节存储顺序,简称字节序,又称端序或尾序(英语:Endianness)。是指多字节数据在计算机内存中的存储顺序(即...

  • 字节顺序

    中文wiki[https://zh.wikipedia.org/wiki/%E5%AD%97%E8%8A%82%E...

  • 主机字节顺序HBO(Host Byte Order)

    网络字节顺序NBO(Network Byte Order) 按从高到低的顺序存储,在网络上使用同一的网络字节顺序,...

  • Wifi笔记 | 大端小端

    字节顺序模式: 小端字节顺序的数据存储模式是按内存增大的方向存储的,即低位在前高位在后;主要用于os 大端字节顺序...

  • 知识点:谈谈字节顺序和大小端模式

    一、什么是字节序 字节顺序,是指数据在内存中的存放顺序 举例说明什么是字节顺序 使用16进制表示两个数:0x123...

  • ntohs,htons,ntohl,htonl

    n:网络字节顺序NBO(Network Byte Order ): 从高到低的顺序储存,在网络上使用同一的网络字节...

  • Linux socket编程:地址及转换

    1. 网络字节序与主机字节序 1.1 主机字节序() CPU的字节顺序类型, 小端,little endian; ...

  • 简单理解字节序

    字节序,一种简称,表示为内存中存储的字节的顺序,但仅仅是某一结构的存储字节的顺序,不影响总体结构。 起源 ... ...

网友评论

    本文标题:字节顺序

    本文链接:https://www.haomeiwen.com/subject/qthuattx.html