c - 在 C 中打印最后 5 位数字(八进制)
问题描述
我想知道如何在 C 编程语言中只打印八进制数的最后 5 位数字?
棘手的部分:这个数字在定义中是无符号的,所以经过一些程序后它会输出类似 3777777464 的东西。我想打印的只是 77464。
我试图在 C 格式指南中四处查看,但我只发现了如何编写前 5 个数字/字符,而不是关于提到的棘手部分的最后 5 个数字/字符。
它只需要显示在输出中(文件中的 printf/fprintf)。
编辑并强调:代码太长,无法在此处发布,它由许多 c 文件和头文件组成。为了简洁:我需要 printf("%05o\n",arr[i]); 仅打印最后 5 位数字。它打印出类似 3777777464 的东西。数字是正确的,我只需要最后 5 位数字
非常感谢你帮助我
解决方案
仅打印数字的最后 5 位(八进制)数字
通过与 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));
推荐阅读
- python - 如何使用 python 检查 solr 是否正在运行?
- python - 如何修复 StringVar.get() 问题
- python - 为什么我的视图没有删除选定的对象?
- aws-api-gateway - AWS API Gateway WebSocket 的自定义端点路径
- node.js - 在 AWS Elastic Beanstalk 上使用 Node 8 的 Rails 6.0.2
- python - `f=lambda t,y: -y` 和 `f=lambda y:-y` 之间的区别
- python - 模块“matplotlib.pyplot”没有属性“xaxis”
- google-cloud-platform - 如何在服务帐户上启用“iam.serviceAccounts.actAs”权限?
- react-native - 使用 RNFetchBlob 将所选文档从 DOCUMENT PICKER 转换为原生到 base64
- informatica - 使用 SQL stmt Select 的 Informatica 数据库驱动程序错误