如何在C中打印带符号的十六进制 [英] How to print signed hexadecimal in C

查看:44
本文介绍了如何在C中打印带符号的十六进制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道我们可以使用 printf(%04X",value); 来打印无符号十六进制值.

I know we can use printf("%04X", value); to print unsigned hexadecimal values.

C中是否有类似的标志或函数可用于打印带符号的十六进制值?

Is there a similar flag or a function in C that you can use to print signed hex values?

类似的东西

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 函数无法直接执行此操作.您当然可以尝试:

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);

这也应该用于处理INT_MIN.

This should also work for handling INT_MIN.

这篇关于如何在C中打印带符号的十六进制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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