c - 从 int main 返回“-1”在控制台中显示“返回值 4294967295”为什么?
问题描述
我正在使用 Windows-11、64 位和 Dev-C++(Bloodshed v5.11);以下是简单的代码片段:-
#include<stdio.h>
int main()
{
return -1;
}
我在控制台中得到以下输出:-
进程在 0.2015 秒后退出,返回值 4294967295 按任意键继续。. .
在输出中,我确实认识到 4294967295 (2^32 - 1) 是无符号 4 字节整数的最大值,但我不明白为什么返回此值而不是“-1”。
解决方案
-1
以二进制补码有符号数字格式(假设 4 字节长整数)是0xffffffff
可以存储在 4 字节中的最大无符号值。当今使用的几乎所有计算机(包括您的 PC、Mac 和任何手机)都使用二进制补码格式
您的 shell 将程序返回值显示为无符号整数。0xffffffff
十六进制数的十进制表示是4294967295
推荐阅读
- pytorch - 我正在尝试使用 pytorch 的 XLNet 实现,并在加载 XLNet 时得到“尝试创建具有负维度 -1:[-1, 768] 的张量”
- html - 如何重新定位重叠的 3 个 div
- wordpress - GuzzleHttp 返回内存不足异常,但邮递员使用相同请求没有问题
- google-cloud-platform - 为什么 GCP 定价计算器界面未完全显示?
- r - 显示每个方面组 ggplot2 中的观察次数
- javascript - 如何在 Puppeteer 中定义函数后调用它
- bash - 从文件传入变量时,Curl 不起作用
- javascript - 在 moment.js 中哪里可以找到改变日期的方法
- ios - 如何在 SwiftUI 中相对于其左上角定位视图
- python - tkinter 中的 pack 功能问题