#include <stdio.h>
int main()
{
unsigned int x =1;
signed char y = -1;
unsigned int sum = x + y;
printf("%u", sum);
}
在上面的程序中,我希望将有符号的char转换为unsigned int,因此总和为x + y = 1 + 2 ^ 32 -1 = 2 ^ 32。但令人惊讶的是,它显示0。
[以前,我尝试打印(x> y)并得到false(0)作为输出。我不知道这是怎么回事,有人能解释一下在这种情况下如何投射吗?
#include
将2 32
4.5整体促销[conv.prom]