我知道我们可以使用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的问题…