如何判断一个系统的大小端的存储模式

1、什么是大小端

大小端:是指在计算机系统中,多字节数据(如整数、浮点数等)存储顺序的不同而不同的称呼。

在计算机内存中,数据是以字节为单位存储的。对于多字节数据,如4字节的整数,存储的时候需要选择一个字节作为起始位置,并按照一定的顺序存储字节。

 大端:是指高位字节在前、低位字节在后的存储方式。

就是整数的高位字节存储在低地址中,低位字节存储在高地址中。类似于大端法的读书方式,从书的开头按照顺序读取每个字节。

 小端:是指低位字节在前、高位字节在后的存储方式。

就是整数的低位字节存储在低地址中,高位字节存储在高地址中。类似于小端法的读书方式,从书的结尾倒着读取每个字节。

使用int a=0x11223344为例子

大小端存储模式的选择主要取决于计算机体系结构和操作系统的设计。不同体系结构和操作系统可能选择不同的存储模式。

2、怎么判断一个系统的大小端

int judgment() {
    int num = 1;
    // 将int类型的变量的地址转换为char类型的指针
    char* ptr = (char*)#
    // 判断指针所指向的值,如果为1则为小端存储,否则为大端存储
    return *ptr;
}

 int main() {
    if (judgment()) {
        printf("Little Endian\n");
    }
    else {
        printf("Big Endian\n");
    }
    return 0;
}

主要是通过每个变量的字节不int是4个字节同然后通过强行转(char是一个字节存储不下int的4个字节就会存储int类型的第一个字节),转化变量让后通过调试观察char类型即可。

 由上图可知较大的数在前面所以VScode是一个小端的编译器。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值