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

举报
倔强的石头 发表于 2024/12/27 22:16:20 2024/12/27
【摘要】 18 C语言中没有专门的八进制变量类型和十六进制变量类型,八进制变量和十六进制变量实际上是以十进制形式表示的整数。 在C语言中,只有在定义变量时才能使用八进制表示法和十六进制表示法,在其他情况下,如果没有特殊要求,八进制数和十六进制数会被自动

目录

 输入输出格式参考文章

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

 编辑


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

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。