【发布时间】:2021-11-23 09:01:09
【问题描述】:
我知道 c 在二进制补码中工作,但我仍然无法理解下面的程序如何给我 2147483647 作为输出。
#include<stdio.h>
int main(){
int a=-2147483648;
a-=1;
printf("%d",a);
}
【问题讨论】:
-
我认为这是因为您使用和打印整数(这是一种无符号数据类型)而不是有符号整数。
-
有趣的是,search query 在 Stack Overflow 上为这个 特定 号码提供了超过 14.000 个结果,但您找不到任何有用的答案。
标签: c