字节顺序

2022-09-07  本文已影响0人  七秒钟回忆待续
  1. 中文wiki
  2. RFC 描述。
    https://www.rfc-editor.org/info/rfc1700
    https://www.rfc-editor.org/rfc/rfc1700.txt 网络字节序规定为 big-endian
  3. 网络字节序

计算机存储数据的基本单位是字节,1字节=8位。
8位11111111为16进制0xFF。因此下面为了方便演示用16进制表示。
0x数字1数字2数字3数字4。数字1和2为一个基本存储单元,同理数字3和4也是。

用C语言的union判断计算机大小端模式

#include <stdio.h>

union Data {
    int x;
    short int y;
};

int main() {
    union Data data;
    data.x = 0x1234567;
    printf("数字x为%d; 数字y为%d\n", data.x,data.y);
}
// 输出:数字x为19088743; 数字y为17767

x的输出肯定没问题16进制0x1234567是十进制19088743
假设是大端字节序:short int 是2个字节,因此y表示为0x12 0x34。也就是0x1234=4660
小端字节序存储为:0x67 0x45。也就是16进制0x4567(小端字节)=17767和输出一致。

上一篇 下一篇

猜你喜欢

热点阅读