大端(Big Endian)和小端(Little Endian)

本文介绍了计算机内存中数据存储的大端和小端模式,并通过一个简单程序实例演示了如何判断当前系统的字节序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于多字节数据,如在32位系统中的一个无符号短整型数:

                              unsigned short  usTestNum = 0x1122;

该数据占两个字节,在计算机中地址索引的最小单位是字节,也就是说高位0x11和地位0x22在计算机中分别有一个地址,那么谁的地址大谁的地址小呢。


大端模式:高位存放于低地址,即如果0x11的地址小于0x22的地址,就是大端模式;

小端模式:地位存放于低地址,即如果0x22的地址小于0x11的地址,就是小端模式;


那么计算机到底是大端模式还是小端模式是由CPU和操作系统决定的,下面提供一个简单的判断大小端的程序:

#include <stdio.h>
#include <stdlib.h>

int main()
{

    short sTestData = 0x1122;
    unsigned char cNum = *((unsigned char*)(&sTestData));

    if (cNum == (unsigned char)0x11)
    {
        printf("big endian\n");
    }

    if (cNum == (unsigned char)0x22)
    {
        printf("little endian\n");
    }

    return 0;
}
目前我使用的计算机不论是windows系统还是ubuntu系统是小端模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值