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

2024-01-10 04:41:40

目录

?输入输出格式参考文章

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

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

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

我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数的表达特点。所以理解和掌握进制的转换和使用尤为重要

?输入输出格式参考文章

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;
}

?

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

文章来源:https://blog.csdn.net/2302_78391795/article/details/135491679
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。