如何在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&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...