为什么我们不能像C编程中那样用二进制打印数字。
例:
int a=9; printf("%b",a);
我们可以用其他forms打印:
这本身与C语言无关。 只是,C标准默认情况下没有为printf()
和family指定格式说明符来生成二进制表示输出。
您可以随时推出自己的function来完成工作。 有一些版本的C库选择提供格式说明符(也是一个整数后缀)来表示二进制表示,但再一次,这既没有强制要求不受官方标准的约束。
我在这里推测,但是:C最初是由专业的,实践程序员设计和实现的,目的是在其中编写真正的程序。 并且,虽然真正的程序发现一直以十进制和hex打印是必要且有用的,但以二进制打印事物通常并不重要。 这需要很大的空间,如果你是一个专业的程序员,并且你有一个用二进制术语思考的数字,例如某种类型的位掩码,那么以更紧凑的hex表示打印它是传统的,然后如果需要,可以在头脑中转换成二进制文件。
当然,如果没有其他原因,他们的教师总是把它作为练习分配,那么用二进制打印东西对学生程序员来说是非常有趣的。 但当然C从来没有考虑到初学程序员的设计。
如果(如上所述)它是最常见和最有用的十进制和hex,你可能会合理地问,那为什么printf
支持%o
? 有人说,答案很简单,八进制是在PDP-11上用机器语言表示机器常数和其他二进制数字的传统方式,这当然是C的原始平台。
另见C FAQ列表中的问题20.11 。
以上就是c/c++开发分享为什么我们不能以二进制forms打印十进制,八进制,hexforms的值?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/522016.html