本文介绍了如何打印在C签署十六进制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我知道我们可以用printf(%04X,值);打印无符号的十六进制值
是不是也有类似标记或C中的函数,你可以用它来打印签名的十六进制值?
类似这样的东西。
BINARY HEX(签名)HEX(无符号)
-------- ----------- --------------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℃的 - :中,X,0 - (无符号)x:x);
修改:我相信我固定的处理问题 INT_MIN
...
I know we can use printf("%04X", value); to print unsigned hex values
is there a similar flag or a function in c that you can use to print signed hex values?
something similar like this
BINARY HEX(SIGNED) HEX (UNSIGNED)
-------- ----------- --------------
00000010 +0x2 0x2
00000001 +0x1 0x1
00000000 +0x0 0x0
11111111 -0x1 0xFF
11111110 -0x2 0xFE
11111101 -0x3 0xFD
解决方案
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);
Edit: I believe I fixed the issue of handling INT_MIN
...
这篇关于如何打印在C签署十六进制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!