1、C语言打印八进制是通过%o,(百分号和小写字母o组成)打印输出的,首先八进制017的打印输出,实现以下代码段,代码段是先保存一个8进制的数字,然后通过%o的方式输出八进制。
2、代码段编译通过后运行查看结果,可以看到结果就是17,八进制打印出八进制,不会有什么变化。
3、十进制表示的数字以八进制的格式打印出来看看结果,首先通过计算机得到十进制的数字20等于八进制的24,具体如下图所示,左边八进制,右边十进制。
4、然后实现以下代码段,十进制的数字20以八进制的格式进行打印输出,代码段是先保存一个十进制的数字20,然后通过%o的方式输出八进制。
5、代码段编译通过后运行查看结果,可以看到十进制数字20以八进制的格式输出的结果是24,和通过计算机得出的结果是一致的。
6、十六进制表示的数字以八进制的格式打印出来的结果,首先通过计算机得到十六进制的数字0xAF等于八进制的257。
7、然后实现以下代码段,十六进制的数字0xAF,以八进制的格式进行打印输出。代码段是先保存一个十六进制的数字0xAF,然后通过%o的方式输出八进制。
C++中,可通过itoa()函数,方便的将10进制数转换成2 8 16等进制数,并转存到字符串中。
如果仅是想以8或16进制格式输出10进制数,则可以使用cout的格式化输出参数oct和hex完成数据输出。(缺陷:不支持二进制格式输出)
参考代码:
相关函数说明:
char *itoa( int value, char *string,int radix);
说明:
value:欲转换的数据。
string:目标字符串的地址。
radix:转换后的进制数,可以是2 8 10 16进制等。
特别说明:itoa 并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,可以用sprintf(),用法与printf()相同。