我刚开始自学C语言,使用的是K.N King的《C Programming: A Modern Approach (2ndEdn)》。我很喜欢这本书,但如果有疑问的话,我希望能在这里发帖寻求建议,因为不幸的是我没有导师,而且有些部分引发了更多的问题!
我正在做一个关于将输入的整数显示为八进制的问题。书上说有一种简单的方法,但那会在后面的章节中介绍。我想出了以下解决方案:
// Convert a number to octal
int n, n2, n3, n4, n5, n6;
printf("Enter a number between 0 and 32767: ");
scanf("%d", &n);
n6 = n % 8;
n5 = (n / 8) % 8;
n4 = ((n / 8) / 8) % 8;
n3 = (((n / 8) / 8) / 8) % 8;
n2 = ((((n / 8) / 8) / 8) / 8) % 8;
printf("%d%d%d%d%d", n2, n3, n4, n5, n6);
这个方法可以正常工作,但我不擅长数学,想知道是否有更有效的方法或者我已经使用了唯一的方法...
如果其他人也有这本书,可以看看第4章第71页。
感谢您的时间。 安德鲁
附言:我查了搜索引擎,但没有找到任何以“较慢”的方式进行此操作的内容!