我刚刚开始从 KN King 的 C Programming: A Modern Approach (2ndEdn) 中自学 C。
我很喜欢它,但我希望在适当的时候在这里发布这个奇怪的问题以征求意见,因为不幸的是我没有导师,而且有些问题会引发更多的问题,然后他们会回答!
我正在做一个关于输入整数并以八进制显示的问题。它说有一种简单的方法可以做到这一点,但这将在本书的后面部分介绍。我想出了以下几点:
// 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);
它工作正常,但我不擅长数学,想知道是否有更有效的方法来做到这一点,或者我是否以唯一可能的方式做到了......
如果其他人有这本书,那就是 Q4 p.71。
谢谢你的时间。安德鲁
PS 我确实查看了搜索引擎,但找不到任何以这种“慢”方式进行的操作!