微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在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的问题…

原文地址:https://www.jb51.cc/c/113145.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐