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、通信协议及开发工具链等核心内容。