解释C程序的结果
explain the Outcome of C program
我看到了以下打印输出的代码 "Same" 但我在理解这个程序时遇到了问题。请帮助我理解程序。
int main()
{
unsigned int x = -1;
int y = ~0;
if(x == y)
printf("same");
else
printf("not same");
return 0;
}
输出"Same"是怎么来的?请帮我看看这里发生了什么。
Unsigned int x = -1 具有位标志(32 位):
11111111111111111111111111111111
int 0 有位标志(32 位):
00000000000000000000000000000000
~0 是 0(按位)的取反,即(32 位):
11111111111111111111111111111111
作为旁注:
unsigned int x = -1;
等同于
unsigned int x = UINT_MAX.
我看到了以下打印输出的代码 "Same" 但我在理解这个程序时遇到了问题。请帮助我理解程序。
int main()
{
unsigned int x = -1;
int y = ~0;
if(x == y)
printf("same");
else
printf("not same");
return 0;
}
输出"Same"是怎么来的?请帮我看看这里发生了什么。
Unsigned int x = -1 具有位标志(32 位):
11111111111111111111111111111111
int 0 有位标志(32 位):
00000000000000000000000000000000
~0 是 0(按位)的取反,即(32 位):
11111111111111111111111111111111
作为旁注:
unsigned int x = -1;
等同于
unsigned int x = UINT_MAX.