1. 基本数据类型定义
typedef unsigned char uint8_t; //无符号8位整数
typedef signed char int8_t; //有符号8位整数
typedef unsigned short uint16_t; //无符号16位整数
typedef signed short int16_t; //有符号16位整数
typedef unsigned long uint32_t; //无符号32位整数
typedef signed long int32_t; //有符号32位整数
2.取16位前两位/后两位代码示例:
int main()
{
unsigned short hex = 0x1234;
unsigned short low = hex & 0xff; //取16位前两位
unsigned short hight = hex >> 8; //取16位后两位
printf("low: 0x%x, hight: 0x%x\n", low, hight);
unsigned short tmp = low + (hight << 8); //取到前、后两位合并
printf("hex: 0x%x\n", tmp);
}
运行结果:
3.取24位 前两位/中两位/后两位代码示例:
#include <stdio.h>
int main(void)
{
unsigned long hex = 0x123456;
unsigned short l = hex & 0xff;
unsigned short m = hex >> 8 & 0xff;
unsigned short h = hex >> 16;
printf("l: 0x%x, m: 0x%x, h: 0x%x\n", l, m, h);
unsigned long tmp = l + (m << 8) + (h << 16);
printf("hex: 0x%lx\n", tmp);
return 0;
}
运行结果: