二进制数、八进制数和十六进制数的输出
语言中常用的整数有 short、int 和 long 三种类型,通过 printf 函数,可以将它们以八进制、十进制和十六进制的形式输出。上节我们讲解了如何以十进制的形式输出,这节我们重点讲解如何以八进制和十六进制的形式输出,下表列出了不同类型的整数、以不同进制的形式输出时对应的格式控制符:十六进制数字的表示用到了英文字母,有大小写之分,要在格式控制符中体现出来:
%hx、%x 和 %lx 中的x小写,表明以小写字母的形式输出十六进制数;
%hX、%X 和 %lX 中的X大写,表明以大写字母的形式输出十六进制数。
八进制数字和十进制数字不区分大小写,所以格式控制符都用小写形式。如果你比较叛逆,想使用大写形式,那么行为是未定义的,请你慎重:
有些编译器支持大写形式,只不过行为和小写形式一样;
有些编译器不支持大写形式,可能会报错,也可能会导致奇怪的输出。
注意,虽然部分编译器支持二进制数字的表示,但是却不能使用 printf 函数输出二进制,这一点比较遗憾。当然,通过转换函数可以将其它进制数字转换成二进制数字,并以字符串的形式存储,然后在 printf 函数中使用%s输出即可。
按权相加法除基取余法乘基取整法 八进制计算机比较常见,十六进制用来表示二进制比较方便 八进制没用过,都是用16进制,10进制。 我只用过16进制,10进制的。 八进制早期计算机中比较常见 我也没用过八进制 现在基本都是用2进制、10进制和16进制的 2 10 16 用的多,8的没用过 没怎么见过8进制应用场景 我们在什么情况下应用八进制的数据呢 估计只有在特定的场合会使用八进制的数据 在航空电子设备中,ARINC 429字标签几乎总是以八进制表示 一般情况下我们使用八进制的数据还是都比较慎重的 有一些地方,Windows和javascript自动决定前缀为零的数字是八进制并转换数字 最一开始的时候八进制的数据是在什么情况下产生的呢 字符串转整数,需要把代码转换过来吗? 如果使用串口,最坑的还是汉字的 直接输出16进制就行。 在 printf 函数中这些都是必须要用的。
页:
[1]
2