如何在c中打印带符号的hex
我知道我们可以使用printf(“%04X”,value); 打印无符号hex值
c中是否有类似的标志或函数可用于打印带符号的hex值?
像这样的东西
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
的问题......
不,但你可以做点什么
printf("%c%04X",(x<0)?'-':' ',(x<0)?-x:x);
但是,正如其他人指出的那样,是否有正当理由这样做是值得怀疑的。 一定要明白你要求的确切内容。
编辑 :根据你的post的编辑,你明白你要求的是什么,所以这都是你的错;-)
“符号”hex值是什么意思? 你想要像“ -e0
”这样的东西吗? 如果是这样,那意味着什么? 该符号已经在hex显示中表示,因为它显示了所有位,这是数字中的所有信息。