从 int main 返回“-1”在控制台中显示 "return value 4294967295" 为什么?
Returning "-1" from int main shows "return value 4294967295" in the console why?
我正在使用 Windows-11、64 位和 Dev-C++ (Bloodshed v5.11);以下是简单的代码片段:-
#include<stdio.h>
int main()
{
return -1;
}
我在控制台中得到以下输出:-
Process exited after 0.2015 seconds with return value 4294967295
Press any key to continue . . .
在输出中,我确实认识到 4294967295 (2^32 - 1) 是无符号 4 字节整数的最大值,但我不明白为什么返回该值而不是“-1”。
-1
以二进制补码有符号数格式(假设 4 字节长整数)是 0xffffffff
,这是可以存储在 4 字节中的最大无符号值。现在几乎所有使用的计算机都使用二进制补码格式(包括您的 PC,Mac 和任何移动设备 phone)
您的 shell 将程序 return 值显示为 无符号整数 。 0xffffffff
十六进制数的十进制表示为 4294967295
我正在使用 Windows-11、64 位和 Dev-C++ (Bloodshed v5.11);以下是简单的代码片段:-
#include<stdio.h>
int main()
{
return -1;
}
我在控制台中得到以下输出:-
Process exited after 0.2015 seconds with return value 4294967295 Press any key to continue . . .
在输出中,我确实认识到 4294967295 (2^32 - 1) 是无符号 4 字节整数的最大值,但我不明白为什么返回该值而不是“-1”。
-1
以二进制补码有符号数格式(假设 4 字节长整数)是 0xffffffff
,这是可以存储在 4 字节中的最大无符号值。现在几乎所有使用的计算机都使用二进制补码格式(包括您的 PC,Mac 和任何移动设备 phone)
您的 shell 将程序 return 值显示为 无符号整数 。 0xffffffff
十六进制数的十进制表示为 4294967295