计算机操作系统中存储信息都是以字节为单位,每个地址单元对应 1 个字节。
1 个字节为 8 bits,对于某些32 位处理器而言,char类型数据占用 1 个字节的空间,short 占用2个字节,int 占用4个字节。而这些字节在内存中的存储顺序,以及字节内存的排列方式,都是人们迫切关注的。当第一个字节出现的时候,第二个字节就需要确定其出现的位置以及其意义。
例如,Internet 协议,例如RFC 791;
再例如,文件格式,例如GIF、JPEG、MPEG等等。
而这些字节一个接着一个的顺序,称之为字节顺序(endianness)。从左往右、从右往左,字节顺序被分为两种:
对于一个数x 的值为0x2211,其中0x22 为高字节,0x11 为低字节。
对于大端模型,在文件、协议传输时,会按照读的顺序,先是0x22,接着是0x11。
对于小端模型,恰好相反,会将0x22 会接着0x11 之后。
而在计算机中,大端模型会将数据的高字节的保存在内存的低地址中,而数据的低字节保存在内存的高地址中。小端模型相反。
例如对于数0x1234567
计算机处理字节序的时候&#x