如何在c中打印已签名的十六进制

前端之家收集整理的这篇文章主要介绍了如何在c中打印已签名的十六进制前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道我们可以使用printf(“?X”,value);打印无符号的十六进制值

在c中是否有类似的标志或函数,您可以使用它来打印带符号的十六进制值?

类似这样的东西

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函数无法直接执行.你当然可以试试:
printf("%s%x\n",x<0?"-":"",x<0?-(unsigned)x:x);

编辑:我相信我修正了处理INT_MIN的问题…

猜你在找的C&C++相关文章