标签:位置 tcp 存储 ble pac 不同的 需要 amp end
不同的CPU有不同的字节序类型,这些字节序是指 整数 在内存中保存的顺序,这个叫做 主机序。最常见的有两种:
1.Little endian:将低序字节存储在起始地址
2.Big endian:将高序字节存储在起始地址
LE little-endian(小端)
BE big-endian(大端)
1) 最直观的字节序;
2) 地址低位存储值的高位;
3) 地址高位存储值的低位;
4) 为什么说直观,不要考虑对应关系;
5) 只需要把内存地址从左到右按照由低到高的顺序写出;
6) 把值按照通常的高位到低位的顺序写出;
7) 两者对照,一个字节一个字节的填充进去;
例子:在内存中双字 0x01020304(DWORD) 的存储方式
Addr: 4000 4001 4002 4003 |
x86系列CPU都是little-endian的字节序。网络字节顺序采用big endian排序方式。
网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。
我们知道计算机正常的内存增长方式是从低到高(当然栈不是),取数据方式是从基址根据偏移找到他们的位置,从他们的存储方式可以看出,大端存储因为第一个字节就是高位,从而很容易知道它是正数还是负数,对于一些数值判断会很迅速。而小端存储 第一个字节是它的低位,符号位在最后一个字节,这样在做数值四则运算时从低位每次取出相应字节运算,最后直到高位,并且最终把符号位刷新,这样的运算方式会更高效。
标签:位置 tcp 存储 ble pac 不同的 需要 amp end
原文地址:https://www.cnblogs.com/mazg/p/9816315.html