gpt4 book ai didi

我们可以将负数的整数分配给无符号整数吗?

转载 作者:太空宇宙 更新时间:2023-11-04 01:07:03 24 4
gpt4 key购买 nike

#include<stdio.h>
#include<conio.h>
main()
{
int i=-5;
unsigned int j=i;
printf("%d",j);
getch();
}

O/p
-----
-5

#include<stdio.h>
#include<conio.h>
main()
{
int i=-5;
unsigned int j=i;
printf("%u",j);
getch();
}

O/p
===
4255644633

这里我没有得到任何编译错误。

当使用标识符 %d 打印时它给出 -5,当使用 %u 打印时它打印一些垃圾值。

我想知道的是

1) 为什么编译器在将带负数的整数分配给 unsigned int 时忽略。

2) 如何将有符号转换为无符号?

最佳答案

“我们”是谁?

没有“垃圾值”,这可能只是将有符号整数的位视为无符号整数的结果。通常 two's complement对于许多负值,将导致非常大的值。尝试以十六进制打印值以更清楚地查看模式,十进制通常难以破译。

关于我们可以将负数的整数分配给无符号整数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20547327/

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