C++中如何将一个十六进制数转化为二进制数 听说有一种取余法 不知道怎么用 望指导下 能写个例子就最好了

当然 其他方法也行 简便点就行 初学者不会很多函数
2025-03-13 08:51:22
推荐回答(2个)
回答1:

是有,但是只适用于十进制与非十进制之间的转换;对于两个非十进制的数之间的转换可以以十进制作为媒介;
其余数的到位就是非十进制的表示方法;
举个例子:
十进制的12,转换为2进制:
12/2=6 余数 0
6/2=3 余数 0
3/2=1 余数 1
1/2=0 余数 1;
所以 2进制的是12 表示为 :1100
2 为进制数;十六进制就除16;

将2进制的数转换为十进制:
1*2^3+1*2^2+0*2^1+0*2^0=12
2为进制数;幂数为位置(n-1);
其他进制的以此类推;

回答2:

#include
void main()
{
int i;
int a = 0;
char c[10];
scanf("%s",c);
if(c[0]!='0'&&c[1]!='x') //输入格式就是:0x23543
{
printf("不是十六进制数\n");
}
else // 输出格式
{
i = 2;
while (c[i])
{
a = a*16+c[i]-'0';
i++;
}
printf("%d",a);
}

这个是个简单的算法,楼主自自己看看吧,有问题可以继续在问。谢谢望采纳!