1、通过输入十六进制形式的字符转换为十进制数输出
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main1()
{
int a,b;
scanf("%X%X", &a, &b);//输入两个值例如:A 8
printf("%5d%5d\n", a, b); //以十进制形式输出为 10 8
return 0;
}
2、将十六进制形式的字符组成的字符串分别输出为十进制数的形式
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
//char ptr[10] = {'A','B','C','D','E','8','1'};
char ptr[10] = "ABCDE81";
int n1,n2,n3,n4,n5,n6,n7;
int i = 0;
int n[7];
sscanf((const char*)ptr,"%1X%1X%1X%1X%1X%1X%1X", &n1, &n2, &n3, &n4, &n5, &n6, &n7);
printf("%5d%5d%5d%5d%5d%5d%5d\n", n1, n2, n3, n4, n5, n6, n7);
sscanf((const char*)ptr,"%1X%1X%1X%1X%1X%1X%1X", n, n+1, n+2, n+3, n+4, n+5, n+6);//将ptr按照每个字符为%X的格式赋值到数组n[i]中
for(i=0;i<7;i++)
{
printf("%4d",n[i]);
}
putchar('\n');
return 0;
}
运行结果:
3、将十六进制形式的字符组成的字符串分别输出为十进制数的形式(只限A,B,C,D,E)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char ptr[10] = "ABCDE81";
int n[7];
int i = 0;
int j = 0;
for(i=0;i<7;i++)
{
j = ptr[i] - 'A';
if(j>=0)
{
n[i] = ptr[i]-('A'-0x0A);//ptr[i]-n[i] = 'A'-0x0A由这个方程而来,求n[i]
}
else
{
n[i] = ptr[i]-('0'-0x00);
}
}
for(i=0;i<7;i++)
{
printf("%5d", n[i]);
}
putchar('\n');
return 0;
}
运行结果: