在 C 中打印最后 5 位数字(八进制)

Printing last 5 digits in C (Octal base)

我想知道如何在 C 编程语言中只打印八进制数的最后 5 位数字?

棘手的部分:数字在定义中是无符号的,所以经过一些程序它输出类似 3777777464 的东西。我想要打印的只是 77464。

我试图四处查看 C 格式指南,但我只找到了如何编写前 5 个 digits/characters,而不是最后 5 个关于提到的棘手部分。

只需要在输出中显示(printf/fprintf在文件中)。

编辑并强调:这里的代码太长post,它由许多c文件和头文件组成。为了简洁:我需要 printf("%05o\n",arr[i]);仅打印最后 5 位数字。它打印出类似 3777777464 的内容。数字是正确的,我只需要最后 5 位数字

非常感谢你帮助我

print just the last 5 (octal) digits of a number

通过与 077777 的掩码进行与运算得出最后 5 个八进制数字。

#define MASK_LAST_5_OCTAL_DIGITS 077777u

//       vv print at least 5 characters, pad with 0 as needed 
printf("%05o\n", (unsigned) (number & MASK_LAST_5_OCTAL_DIGITS));