所以我是 C 的绝对初学者,我必须制作一个十进制到十六进制的转换器。
所以我想我需要创建一个循环,直到结果为 0。
但我怎样才能让它记住所有剩余的内容呢?该数字将使用 scanf 输入,因此我无法为其定制代码。
现在我想做这样的事情
while(number(n)!=0)
{
number0 / 16 = number1
number0 % 16 = remainder0
number1 / 16 = number2
number1 % 16 = remainder1
.....
number(n-1) / 16 = 0
number(n-1) % 16 = lastremainder
}
hex = lastremainder, ..., remainder2, remainder1, remainder0
但是如何让程序在循环期间创建变量呢?我必须使用完全不同的方法吗?我查看了其他十进制到十六进制转换器,但不太了解它们是如何工作的。
就像我说的,我是一个绝对的初学者,如果这个问题很愚蠢,我很抱歉。
感谢您的答复。那么数组可以解决我的问题吗?我现在还不完全理解它们,但感谢您指出正确的方向。
我只想用sprintf
, 说实话:
char hex[10];
sprintf(&hex, "%x", INT_MAX);//INT_MAX macro requires limits.h, though...
printf("%s\n", hex);//prints 7fffffff
任务完成...
完整地说,您的代码可能类似于:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char hex[10];
int input;
scanf("%d", &input);
sprintf(&hex, "%x", input);
printf("The number %d, turned to hexadecimal is: %s\n", input, hex);
return 0;
}
Or even:
int input;
scanf("%d", &input);
printf("The number %d, turned to hexadecimal is: %x\n", input, input);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)