在 C 中打印一个十六进制值
这篇文章将讨论使用 C 编程语言打印十六进制值。
C语言中的十六进制数概述
十六进制数是在 C 编程语言中使用 16 个符号构造的值。 这些符号包括从 0 到 9 的十个正常数字系统和从 A 到 F 的六个附加符号。
C 中的十六进制数字系统称为 base-16 数字系统。 无法将十六进制数保存为float、long、double等数据类型; 但是,您可以将它们存储在整数数据类型中。
在C编程语言中要输入一个十六进制值,必须使用scanf,它提供了格式说明符,如%x和%X。
十六进制值在 C 编程语言中表示为 0x 或 0X。 要以十六进制格式打印整数,必须在 printf()
命令中使用格式说明符 %x 或 %X。
当使用 %x 时,该值以十六进制格式打印,字母小写,如 (a-f)。 当使用 %X 时,该值以十六进制格式打印,字母大写,如 (A-F)。
C 编程语言中的格式说明符
如果您希望 0x 始终包含在输出中,则不应使用 # 符号,因为即使值为 0,它也会导致 0x 被添加到输出中。
可以通过以下方式将宽度字段与 0 标志组合来产生前导零:%08x 的值将前导零添加到整数中,使其宽度为 8。
还可以使用精度字段,其内容如下: %.8x
用前导零填充整数,使其总共为 8 位。 因此,0x%.8x 是您考虑实现目标的另一个选项。
如果前缀作为转换的一部分形成,例如 0x 代表 # 或 - 代表带符号转换中的负整数,这些转换要求将不同。 前缀的长度将计入宽度,但不会计入精度说明符。
下面是一个示例,说明如何使用各种说明符为十六进制数提供各种输出样式。
#include<stdio.h>
int main()
{
printf("%10x\n", 252);
printf("%010x\n", 252);
printf("%#010x\n", 252);
printf("%10.8x\n", 252);
printf("%#10.8x\n", 252);
printf("0x%.8x\n", 252) ;
printf("%10x\n", 0);
printf("%010x\n", 0);
printf("%#010x\n", 0);
printf("%10.8x\n", 0);
printf("%#10.8x\n", 0);
printf("0x%.8x", 252);
}
输出:
fc
00000000fc
0x000000fc
000000fc
0x000000fc
0x000000fc
0
0000000000
0000000000
00000000
00000000
0x000000fc
转换为十六进制值的过程
现在,让我们看看系统是如何进行这种转换的,以便我们能够完全理解它。
- 您首先需要将提供的数字除以 16,然后记下运算的余数。
- 继续执行步骤 1,直到商等于 0。
- 按照获取它们的相反顺序组合其余组件。
打印十六进制值的实现
例如,在这个例子中,当我们将 252 除以 16 时,商为 15,余数为 12。 现在,我们将 15 除以 16; 商将为 0,而余数将为 15。
需要注意的是,当 15 除以 16 时,得到的商为 0。因此,这里是我们停止计算的地方。
经过前两个阶段得到的两个余数为12和15,它们对应的十六进制表示为c和f。 余数的十六进制表示在这里按照与生成它们的方式相反的方向组织。
因此,在此实例中,值 252 将以十六进制表示为 fc。
在 C 中使用 %x 以小写字母打印十六进制值
十六进制值将使用 %x 格式修饰符以小字母打印。 像,ff,ffd 等。
让我们看下面的例子,看看 %x 格式说明符是如何工作的。
第一步是导入必要的库并构建一个 main()
函数。
接下来,创建一个数据类型为 int 的变量并将其命名为 integerValue。 然后,给它一个整数值,该整数值将被转换成相应的十六进制值。
然后,我们需要将整数值转换为十六进制,%x 说明符会自动为我们完成并以小写字母打印该值。
代码:
#include<stdio.h>
int main()
{
int integerValue = 252;
printf("The converted value in hexadecimal is: %x\n", integerValue);
return 0;
}
输出:
The converted value in hexadecimal is: fc
在 C 中使用 %X 以小写字母打印十六进制值
在本例中,我们将在 print 语句中使用 %X 以大写字母输出值。
#include<stdio.h>
int main()
{
int integerValue = 252;
printf("The converted value in hexadecimal is: %X\n", integerValue);
return 0;
}
输出:
The converted value in hexadecimal is: FC
相关文章
在 C 语言中使用 typedef enum
发布时间:2023/05/07 浏览次数:181 分类:C语言
-
本文介绍了如何在 C 语言中使用 typedef enum。使用 enum 在 C 语言中定义命名整数常量 enum 关键字定义了一种叫做枚举的特殊类型。
C 语言中的 extern 关键字
发布时间:2023/05/07 浏览次数:114 分类:C语言
-
本文介绍了如何在 C 语言中使用 extern 关键字。C 语言中使用 extern 关键字来声明一个在其他文件中定义的变量
C 语言中的 #ifndef
发布时间:2023/05/07 浏览次数:186 分类:C语言
-
本文介绍了如何在 C 语言中使用 ifndef。在 C 语言中使用 ifndef 保护头文件不被多次包含 C 语言中的头文件用于定义同名源文件中实现的函数的接口。