将十进制转换为十六进制和十六进制
显示如何在C中写入一个常量,其十进制值为65,如将十进制转换为十六进制和十六进制
a。一个十六进制常数65/16 = 1 r1
1/16 = 0 r1
Hexadecimal constant = 11
b。一个八进制常量(以C表示)65/8 = 8 r1
8/8 = 1 r0
1/8 = 0 r1 Octal constant = 101
这是在C中转换常量的正确方法吗?
你只需要一个while循环和一个字符串。由于这是作业,我认为我不应该多说这些。
该方法是除以基数,直到结果小于基数。
所以65/8给人8个R1,但因为结果是8 不低于8
您可以通过8又分为并获得1
应该
你不要停在那里64分之65= 10,R 1,其中64 = 8×8 = 10进制
我不认为我说的太多
谢谢,我以为这就是我最初在我的问题中所做的事情?从这张表中可以看出,65位小数是101八进制数:http://www.ascii.cl/conversion.htm – raphnguyen 2011-05-09 04:13:54
是的,如果我补充说它会给你一个作业问题的答案,还有一些SO用户认为即使您的困惑是真实的,也应该投下赞成票。 *顺便说一下*不要忘记投票并接受你认为最有用的答案 – pavium 2011-05-09 06:46:40
也许我误解了这些问题,但是好像你被问到在C中如何表示十六进制和八进制常量,而不是如何实现将十进制转换为十六进制和十进制的算法。
如果是这样的情况下:
十六进制数由一个前述0x或0X
辛数表示由前述0
int hex = 0x41;
int oct = 0101;
当然表示,可以验证这通过打印我们的十进制值:
printf("%d\n", hex);
printf("%d\n", oct);
65/16 = 4 r1,因此(最终)65十进制= 41十六进制。检查你的卡路里也是65/8。这不像简单的算术那么简单。你可能不需要在'C'中转换常量,你只需要以不同的方式显示它们 - 一个*重要的*区别。 – pavium 2011-05-09 03:49:16
也许我有点困惑。我们是否应该计算余数或在寻找十六进制常数时16进入65的次数?如果它是前者,那么八进制常数是'65/8 = 8 r1'还是'8/8 = 1 r0' ='80'?我想我很困惑到哪里停下来。 – raphnguyen 2011-05-09 03:55:26
你需要跟踪两者:16次分成64次,剩余次数是多少?十进制65到八进制的问题应该更具启发性。 – pavium 2011-05-09 04:03:19