gpt4 book ai didi

c - %d 无符号整数

转载 作者:行者123 更新时间:2023-12-05 04:22:40 26 4
gpt4 key购买 nike

我不小心使用了“%d”来使用在线编译器打印无符号整数。我以为会弹出错误,但我的程序可以成功运行。很高兴我的代码能正常工作,但我就是不明白为什么。

#include <stdio.h>

int main() {
unsigned int x = 1

printf( "%d", x);

return 0;
}

最佳答案

“无符号整数”的值足够小,以至于未设置 MSB(最高有效位)。如果是,printf() 会将值视为“负符号整数”值。

int main() {
uint32_t x = 0x5;
uint32_t y = 0xC0000000;

printf( "%d %u %d\n", x, y, y );

return 0;
}
5  3221225472  -1073741824

你可以看出区别。

对于“读入”printf 格式说明符并将其与以下参数的数据类型相匹配的新奇 编译器,可能是在线编译器可能(也可能不)能够报告此类型不匹配并发出警告。这可能是您想要研究的内容。

关于c - %d 无符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73915354/

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