gpt4 book ai didi

c - 以十六进制打印负数是否有隐含的字长?

转载 作者:行者123 更新时间:2023-11-30 15:18:59 26 4
gpt4 key购买 nike

以下所有内容都会产生相同的 ffffffef 输出:

printf("%x\n", -17);
printf("%2x\n", -17);
printf("%8x\n", -17);

为什么?

最佳答案

printf() 中的

%x 需要一个 unsigned int 参数。假设 int 是 32 位,在您的示例中,-17 将转换为 4294967279u (0xffffffef)。这意味着格式化输出至少为 8 个字符,即使您使用的是 %x%2x

如果使用以下内容,您将得到不同的结果:

printf("%hx\n", -17);   // ffef

在此示例中,%hx 需要一个无符号短值,因此结果不同。

关于c - 以十六进制打印负数是否有隐含的字长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30966900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com