本文共 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/