如何打印在C签署十六进制 [英] how to print signed hex in c

查看:163
本文介绍了如何打印在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签署十六进制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆