字节顺序:大端模式 和 小端模式

字节顺序有“大端模式” 和 “小端模式” 两种。

 

一、字节顺序只是对内置数据类型而言。

例如对于一整型(int,int 是内置数据类型)数,比如 0x123456

大端模式:
低地址 ----------> 高地址
0x12 | 0x34 | 0x56

小端模式:
低地址 ----------> 高地址
0x56 | 0x34 | 0x12


但对于字符串就没有大端和小端的说法(虽然字符是内置数据类型,但字符串不是),比如 “123456”,不管系统是大端还是小端模式,其在内存中的字节顺序都是:

低地址 -------------------------------> 高地址
0x31 | 0x32 | 0x33 | 0x34 | 0x35 | 0x36


二、单个字节内的比特位不受这种字节顺序的影响,大于一个字节的数据类型才有字节顺序的问题。

比如一个字节 1000 0000(或表示为十六进制 80H),不管是什么大端还是小端顺序其在内存中的表示都是这样(二进制):1000 0000。

 

三、网络字节顺序是“所见即所得”的顺序,即大端模式。
比如 int n = 0x567589;
所见到的是“567589”,大端顺序也是
低地址 ----------> 高地址
0x56 | 0x75 | 0x89
这就是网络字节顺序,所见到的顺序和在内存中的顺序是一致的。

你可能感兴趣的:(网络编程)