关于进制在输出时的转换【C语言】

简介: 关于进制在输出时的转换【C语言】

输入输出格式参考文章

C语言printf()函数详解-CSDN博客

C语言scanf()函数详解-CSDN博客

 

注意事项

C语言中没有专门的八进制变量类型和十六进制变量类型,八进制变量和十六进制变量实际上是以十进制形式表示的整数。

在C语言中,只有在定义变量时才能使用八进制表示法和十六进制表示法,在其他情况下,如果没有特殊要求,八进制数和十六进制数会被自动转换成十进制数来表示

1. 十进制整数作为八进制/十六进制输出

  • 输出八进制整数的格式控制符为 %o(注意是字母o)
  • 输出十六进制整数的格式控制符为 %x 或者 %X (小写x和大写X分别表示小写格式和大写十六进制)
  • 八进制和十六进制默认输出时是不带进制符号的(0 0x 和 0X),如果想要输出时带上进制符号,需要在百分号后面加上 # 标志,如%#o 表示输出带符号的八进制数字

例子——输出1234的八进制和十六进制形式(带进制符号)

#include<stdio.h>
int main()
{
  printf("八进制形式为 %#o\n", 1234);
  printf("十六进制形式为 %#x\n", 1234);
  printf("十六进制形式为 %#X\n", 1234);
  return 0;
}

 

2. 八进制整数作为十进制/十六进制输出

  • C语言中默认整数是十进制数字,如果想要表示一个数字在出现的时候是八进制,需要写成0+数字的形式,比如下面的例子就要写成01234
  • 输出十进制整数的格式控制符为 %d 或   %u(只有正数的整型)
  • 输出十六进制整数的格式控制符为 %x 或者 %X (小写x和大写X分别表示小写格式和大写十六进制)
  • 十六进制默认输出时是不带进制符号的( 0x 和 0X),如果想要输出时带上进制符号,需要在百分号后面加上 # 标志,如%#0x 表示输出带符号的十六进制数字

例子——输出八进制01234的十进制和十六进制形式(带进制符号)

#include<stdio.h>
int main()
{
  printf("十进制形式为 %#d\n", 01234);
  printf("十六进制形式为 %#x\n", 01234);
  printf("十六进制形式为 %#X\n", 01234);
  return 0;
}

 

3. 十六进制整数作为八进制/十进制输出

  • C语言中默认整数是十进制数字,如果想要表示一个数字在出现的时候是十六进制,需要写成0x+数字或者0X+数字的形式,比如下面的例子就要写成0x1234
  • 输出八进制整数的格式控制符为 %o(注意是字母o)
  • 输出十进制整数的格式控制符为 %d 或   %u(只有正数的整型)
  • 八进制和十六进制默认输出时是不带进制符号的(0 0x 和 0X),如果想要输出时带上进制符号,需要在百分号后面加上 # 标志,如%#o 表示输出带符号的八进制数字

例子——输出十六进制0x1234的八进制和十进制形式(带进制符号)

 

#include<stdio.h>
int main()
{
  printf("八进制形式为 %#o\n", 0x1234);
  printf("十进制形式为 %#d\n", 0x1234);
  return 0;
}

如果我的文章对您有所帮助,就点个赞支持一下呗 

相关文章
|
6月前
|
存储 程序员 C语言
C语言:字符输出
C语言:字符输出
|
C语言
C语言之将十进制整数转换为任意进制整数
C语言之将十进制整数转换为任意进制整数
233 0
|
4月前
|
C语言
C语言5 字符输出函数和格式输出函数
C语言5 字符输出函数和格式输出函数
91 1
|
6月前
|
C语言
C语言中 字符串和数字的相互转换
C语言中 字符串和数字的相互转换
50 1
|
C语言
【C语言练习】 二进制中1的个数
【C语言练习】 二进制中1的个数
82 0
|
6月前
|
存储 C语言
C语言字符输出函数
C语言字符输出函数
72 0
|
C语言
C语言:二进制、八进制、十六进制整数的书写及输出
C语言:二进制、八进制、十六进制整数的书写及输出
|
存储 C语言
【C语言】求二进制中1的个数(三种方法)
【C语言】求二进制中1的个数(三种方法)
213 0
【C语言】求二进制中1的个数(三种方法)
|
存储 Linux C语言
用c语言将文件中十六进制数据与二进制数据相互转换
用c语言将文件中十六进制数据与二进制数据相互转换
294 0
|
算法 C语言 芯片
【C语言】BCD码、十进制互相转换
【C语言】BCD码、十进制互相转换
780 0