10.3 ARM 体系与架构 编程

一、什么是大小端?

大小端是针对于多字节数据来说的。嵌入式一般是大端模式。

大端模式:低位字节在高地址上,高位字节在地地址上。

小段模式:低位字节在低地址上,高位字节在高地址上。

二、如何判断计算机处理器是大端还是小端?

#include <stdio.h>
int checkCPU(){
    {
        union w {
            int a;
            char b;
        } c;
        c.a =1;
        return(c.b == 1);
    }
}
int main()
{
    if (checkCPU())
        printf("小端\n");
    else
        printf("大端\n");
    return 0;
}

三、如何进行大小端转换?

#include <stdio.h>
#include <string.h>

// 短整型大小端转换
short swap_short(short value) {
    return ((value & 0xFF) << 8) | ((value >> 8) & 0xFF); //之所以 & 是为了避免算数右移。
}

// 整型大小端转换
int swap_int(int value) {
    return ((value & 0xFF) << 24) | ((value & 0xFF00) << 8) |
        ((value >> 8) & 0xFF00) | ((value >> 24) & 0xFF);
}

// 任意长度数

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

C++/嵌入式开发 秋招面经 文章被收录于专栏

一名985硕,在25年秋招中斩获多个C++/嵌入式开发Offer。本专栏将分享我的面经,涵盖C/C++、操作系统、计算机网络、ARM体系与架构、Linux应用/驱动开发、Qt、通信协议及开发工具链等核心内容。

全部评论

相关推荐

03-02 08:18
集美大学 Java
钱嘛数字而已:没有赛事奖项么?另外,项目经历字有点多哈,建议突出一下重点:用的什么技术,解决什么问题,达到什么效果。
大家都开始春招面试了吗
点赞 评论 收藏
分享
评论
4
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务