如何用C语言将一个十六进制数字转换为十进制

发布网友 发布时间:2022-04-21 20:10

我来回答

5个回答

热心网友 时间:2023-06-23 08:33

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:int a = 0XFFFF;printf("%d", a);。

3、编译器运行test.cpp文件,此时成功将十六进制数转换为十进制进行了输出。

热心网友 时间:2023-06-23 08:33

你可以设置一个字符串数组
char HEX[16] =

以后你得出的数字,比如余数y是10,那么HEX[y]打印出来就是A了

例子(现写的)

int now;
int res[100];//答案
int c = 0;//位数

输入到now;
while (now > 0)
{
res[c] = now % 16;
now = now / 16;
c++;
}

输出是:
for (i = 0; i < c; i++)
{
输出 HEX[res[i]];
}

算法的精髓都给你啦,好好理解吧
/**********************************************

**************** 补充 *****************

**********************************************/

改你的代码

#include "stdio.h"
void main()
{
char HEX[16] = ; //<----------------这里加了
int num;
printf("请输入一个十进制整数:");
scanf("%d",&num);

int a[10]; //<----------------这里改了
int i=0;
int yushu;
while(num>0)
{
yushu=num%16;
a[i]=yushu;
num=num/16;
i++;/*关键的就在这里,这后面书上写的要用SWITCH,但是我用不好,请各位大虾指教*/

}

printf("转化为十六进制的数为:");
for(;i>=0;i--)//倒序输出
{
printf("%c",HEX[a[i]]); //<----------------这里改了

}
printf("\n");
}

热心网友 时间:2023-06-23 08:34

你将那个十六进制的数字赋值给一个int型的变量,就直接转化为int型的了。
如果用程序实现这个功能是不用的 计算机会直接转换的。

另外 输出的时候可以控制输出格式。
要注意下C语言的int型的阀值,不要越界。

热心网友 时间:2023-06-23 08:34

你把这个数字直接%d输出就是十进制的
比如你int ival = 0xFFFF;
int jval = ival;
jval 也就是等于你说的那个65535 不要转换啊,他们表示的就是一个数字

热心网友 时间:2023-06-23 08:35

没心情写,给个思路好了。
先转为字串,得字串长度n,然后按
h(n)*16^n+h(n-1)*16^(n-1)+....求和。

要是老师不看过程,可按楼上的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com