原理:十六进制的0~F其实分别对应二进制的0000到1111,所以我们只要事先在二维数组定义好其对应值就行了,放代码:
1.c
#include <stdio.h>
int main(){
//binValue存放的是0~F的对应值,最后用索引提取就行
char binValue[16][5] = {
"0000","0001","0010","0011",\
"0100","0101","0110","0111",\
"1000","1001","1010","1011",\
"1100","1101","1110","1111"};
unsigned char a = 0x78; //用来测试的值
unsigned char H4 = 0; //高四位值
unsigned char L4 = 0; //低四位值
H4 = a/16; // 计算高四位值
L4 = a%16; // 计算低四位值
printf("%s%s\n", binValue[H4], binValue[L4] ); //输出结果
}
gcc 1.c -o 1.exe
.\1.exe
结果:
01111000