当 MSB 位等于 0 时如何以十六进制格式打印它们

2024-05-27

我需要使用打印变量HEX格式。 问题是当我的变量很小时,MSB 等于 0,因此不会打印它们。

ex: uint16_t var = 10; // (0x000A)h

-> 我需要打印"000A"但无论我做什么它总是打印'A'

我怎样才能让它发挥作用?


您可以添加前导0到宽度说明符以强制printf添加前导零(至少,您可以在 C 和 C++ 中 - 不entirely了解使用该函数的其他语言)。

例如,在 C 语言中,如下:

#include <stdio.h>
#include <stdint.h>

int main()
{
    uint16_t a = 10; // 0xA
    printf("%04X\n", a);
    //        ^ width specifier: display as 4 digits
    //       ^ this signals to add leading zeros to pad to at least "n" digits
    return 0;
}

将显示:

000A
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 MSB 位等于 0 时如何以十六进制格式打印它们 的相关文章

随机推荐