将十进制转换为十六进制和八进制

时间:2011-05-09 03:36:36

标签: c decimal hex octal

演示如何用C编写常量,其十进制值为65

一个。十六进制常数
65/16 = 1 r1
1/16 = 0 r1
Hexadecimal constant = 11

湾八进制常数(在C中)
65/8 = 8 r1
8/8 = 1 r0
1/8 = 0 r1 Octal constant = 101

这是在C中转换常量的正确方法吗?

3 个答案:

答案 0 :(得分:0)

你只需要一个while循环和一个字符串。由于这是家庭作业,我认为我不应该说更多。

答案 1 :(得分:0)

方法是除以基数,直到结果小于基数。

所以65/8给出8 r1,但你不会因为结果是8 不小于8 而停在那里

再次除以8得到1

应该是

65/64 = 10 r 1其中64 = 8x8 =八进制10

我认为我说太多太多了

答案 2 :(得分:0)

也许我误解了这些问题,但似乎有人问你如何在C中表示十六进制和八进制常量,而不是如何实现将十进制转换为十六进制和八进制的算法。

如果是这种情况:

十六进制数字由前面的0x或0X

表示

oct数字由前面的0

表示
int hex = 0x41;
int oct = 0101;

当然,您可以通过打印十进制值来验证这一点:

printf("%d\n", hex);
printf("%d\n", oct);