本文共 1215 字,大约阅读时间需要 4 分钟。
在C语言中,通过printf
函数可以轻松地将十进制数转换为八进制和十六进制。下文将详细说明如何使用这些格式说明符,以及如何控制输出格式。
在C语言中,%o
格式说明符用于八进制表示,%X
用于十六进制(字母大写)。需要注意的是,八进制和十六进制的默认表示中不会显示前导零。
示例代码:
#includeint main() { int i = 1234; printf("八进制:%o\n", i); printf("十六进制:%X\n", i);}
输出结果:
八进制:184十六进制:9A
如果需要显示八进制的前导零,可以使用%#o
格式说明符;同理,十六进制的前导零可以通过%#X
显示。
示例代码:
#includeint main() { int i = 1234; printf("八进制(带前导零):%#o\n", i); printf("十六进制(带前导零):%#X\n", i);}
输出结果:
八进制(带前导零):00718十六进制(带前导零):0x9A
十进制到八进制:使用%o
或%#o
格式说明符即可转换十进制为八进制。%o
不显示前导零,而%#o
则显示。
示例:
#includeint main() { int a = 1234; printf("十进制到八进制(无前导):%o\n", a); printf("十进制到八进制(带前导):%#o\n", a);}
十进制到十六进制:使用%X
或%#X
格式说明符转换十进制为十六进制。%X
不显示前导0x
,而%#X
则显示。
示例:
#includeint main() { int a = 1234; printf("十进制到十六进制(无前导):%X\n", a); printf("十进制到十六进制(带前导):%#X\n", a);}
十六进制到十进制:使用%d
格式说明符将十六进制转换为十进制。如果需要指定域宽(即数字的最小显示宽度),可以使用%md
格式说明符。
示例:
#includeint main() { int a = 0x1a2b3c4; printf("十六进制到十进制(无域宽):%d\n", a); printf("十六进制到十进制(域宽为15):%15d\n", a);}
%o
不显示前导零,%#o
显示前导零。%X
不显示前导0x
,%#X
显示前导0x
。%o
、%X
等格式说明符实现,反之亦然。转载地址:http://umfj.baihongyu.com/