需要准败乱薯备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器察者,新建一个初始.cpp文件,例如陪模:test.cpp。
2、在test.cpp文件中,输入C语言代码:int a = 0XFFFF;printf("%d", a);。
3、编译器运行test.cpp文件,此时成功将十六进制数转换为十进制进行了输出。
你可以设置一个字符串数组
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");
}
你将那个十六进制的数字赋值给一个int型的变量,就盯物直接转化为int型信则晌的了。
如果用程序实现这个功能是不用的 计算机会直接转换的。
另外 输出的时候可以控制输出格滑锋式。
要注意下C语言的int型的阀值,不要越界。
你把这个数字直接%d输出就是十喊蠢进制的
比如枝陪你int ival = 0xFFFF;
int jval = ival;
jval 也就是等于你说的那个65535 不要转换啊,他们表示的就是一郑搭陪个数字
没茄锋郑心情写,给个思路好了。基侍
先转为字串,得字串长度n,然后按
h(n)*16^n+h(n-1)*16^(n-1)+....求和。
要是老师不看颤颂过程,可按楼上的。