我刚开始用KN King's 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);
Run Code Online (Sandbox Code Playgroud)
它运作正常,但我不擅长数学,并且想知道是否有更有效的方法来做到这一点,或者我是否尽可能地完成了它...
如果其他人有这本书,那就是Q4 p.71.
谢谢你的时间.安德鲁
PS我确实在搜索引擎中查找了但是找不到任何以"慢"方式执行的操作!
最简单的方法可能是使用printf()'s%o 格式说明符:
scanf("%d", &n);
printf("%o", n);
Run Code Online (Sandbox Code Playgroud)