发布网友 发布时间: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)+....求和。
要是老师不看过程,可按楼上的。