如何在C中打印带符号的十六进制 [英] How to print signed hexadecimal in C
本文介绍了如何在C中打印带符号的十六进制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我知道我们可以使用 printf(%04X",value);
来打印无符号十六进制值.
I know we can use printf("%04X", value);
to print unsigned hexadecimal values.
C中是否有类似的标志或函数可用于打印带符号的十六进制值?
Is there a similar flag or a function in C that you can use to print signed hex values?
类似的东西
Binary Hex (signed) Hex (unsigned)
-------- ----------- --------------
00000010 +0x2 0x2
00000001 +0x1 0x1
00000000 +0x0 0x0
11111111 -0x1 0xFF
11111110 -0x2 0xFE
11111101 -0x3 0xFD
推荐答案
不幸的是,C的 printf
函数无法直接执行此操作.您当然可以尝试:
Unfortunately C's printf
function has no way to do this directly. You could of course instead try:
printf("%s%x\n", x<0 ? "-" : "", x<0 ? -(unsigned)x : x);
这也应该用于处理INT_MIN.
This should also work for handling INT_MIN.
这篇关于如何在C中打印带符号的十六进制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文