我知道我们可以使用printf("%04X",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
Run Code Online (Sandbox Code Playgroud)
R..*_*R.. 10
不幸的是,C的printf功能无法直接执行此操作.你当然可以尝试:
printf("%s%x\n", x<0?"-":"", x<0?-(unsigned)x:x);
Run Code Online (Sandbox Code Playgroud)
编辑:我相信我修复了处理问题INT_MIN......
不,但你可以做类似的事情
printf("%c%04X", (x<0) ? '-' : ' ', (x<0) ?-x : x);
Run Code Online (Sandbox Code Playgroud)
但是,正如其他人指出的那样,这样做是否有正当理由值得怀疑。根据你的帖子,你确实明白你的要求,所以这都是你的错;-)
unw*_*ind -1
“有符号”十六进制值是什么意思?你想要类似“ -e0”的东西吗?如果是这样,那意味着什么?该符号已经以十六进制显示形式表示,因为它显示了所有位,这就是数字中的所有信息。
| 归档时间: |
|
| 查看次数: |
12750 次 |
| 最近记录: |