大端小端

大端小端解析与C代码判断
本文解析了大端和小端模式在内存中如何存储整数,通过直观的例子帮助理解,并提供了一个简单的C代码片段来判断当前机器的字节序。大端模式遵循人类思考方式,而小端模式则相反。

每次遇到大端小端的问题,都要想很久。效率就这样不经意地降低了。只因为理解的不透彻。

其实只需要记住一点,按照人类思考方式的就是大端模式(吃鸡蛋)

比如:0x00000008 这个值在内存中是这样存放的:

大端

addr :     0           1          2         3        4  -->

value:  0x00    0x00      0x00    0x08   

小端

addr :     0           1          2         3        4  -->

value:  0x08    0x00      0x00    0x00 

一个C代码判断机器大小端:

int isbig_endian(void)
{
    int  a = 0x1234;
    char b = *(char *) &a;
    if(b == 0x12) {  //如果低地址是高位0x12,则就是大端
        printf("Big Endian\n")
        return 1;
    }else {
        printf("Little Endian\n")
        return 0;
    }
}

 

转载于:https://www.cnblogs.com/daiker/p/5953045.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值