芯片字节序

字节序列,在计算机领域中,指电脑内存中或通信链路中,对数据占用的多个字节的排列顺序。

小端字节序(Little endian),高位字节在前,低位字节在后。​0x12345678先存低位的那一端

大端字节序(Big endian),低位字节在前,高位字节在后。​0x12345678即先存高位的那一端

以0x12345678数据为例,地址按线性增长。

小端字节序列存储为0x78, 0x56, 0x34, 0x12

小端字节序列存储为0x12, 0x34, 0x56, 0x78

程序判断计算机是大端的还是小端的,判断的思路是确定一个多字节的值(下面使用的是4字节的整数),将其写入内存(即赋值给一个变量),然后用指针取其首地址所对应的字节(即低地址的一个字节),判断该字节存放的是高位还是低位,高位说明是Big endian,低位说明是Little endian。

#include <stdio.h>​
int main ()​
{​
    unsigned int data = 0x12345678;​
    char *c = (char*)&data;​
    if (*c == 0x78) {​
        printf("Little endian");​
    } else {​
        printf("Big endian");​
    }​
    return 0;​
}

相关新闻

联系我们

029-89197679

技术咨询:support@i2som.tech

商务合作:market@i2som.tech

工作时间:周一至周五,9:30-18:30,节假日休息