gpt4 book ai didi

c - 计算机如何将有符号整型数转换为无符号整型数

转载 作者:行者123 更新时间:2023-11-30 19:36:12 24 4
gpt4 key购买 nike

我想知道为什么这段代码会输出 -5 ,因为它们是不同的类型,并且考虑到 2 的补码,-5 在无符号中非常大

#include <stdio.h>
int main()
{
unsigned int x = -5; //
printf("%d", x);

}

我很困惑,如何将signed int转换为unsigned?谢谢!

最佳答案

当将 -5 分配给 unsigned int 时,会发生初始转换。此时,正如建议的那样,您拥有一个非常大的数字(实际值取决于您计算机上 int 中的位数)。

第二个“转换”实际上是一种解释。 printf 被要求获取一组位并将它们打印出来,就好像它们代表无符号整数值一样。这就是为什么输出是 -5

关于c - 计算机如何将有符号整型数转换为无符号整型数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41521175/

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