计算机的存储形式?怎么判断大小端?

大小端

小端存储:是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,存储模式将地址的高低和数据位权有效地结合起来。

大端存储:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,大端存储符合我们对数据的认识

图示

以32位系统,以字节为单位的,每个地址单元都对应着一个字节,一个字节为 8bit,以十进制数123321为例,转化为二进制为0000 0000 0000 0001 1110 0001 1011 1001

大小端

更直观地表示为16进制为

大小端16进制

如何判断计算机是大端存储还是小端存储?

使用指针

判断高位地址是否储存低位数据

#include<stdio.h>
int main() {
    short int x = 1;
    char *c = (char*)&x;//对x取地址,取第一个高位地址
    if (*c) {//判断高位地址是否储存低位数据
        printf("小端 (Little Endian)\n");
    } else {
        printf("大端 (Big Endian)\n");
    }
    return 0;
}

image-20241011214227749

使用联合体

#include<stdio.h>
union test{
	char c;
	int a;
}T;
int main() {
  	T.a = 1; // 初始化联合体的 int 成员
    if (T.c) {//判断高位地址是否储存低位数据
        printf("小端 (Little Endian)\n");
    } else {
        printf("大端 (Big Endian)\n");
    }
    return 0;
}

一般计算机普遍采用小端存储


其他博客地址:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值