相关疑难解决方法(0)

C中unsigned int的行为

C中unsigned int的大小是0 to 65,535 or 0 to 4,294,967,295.

我用C中的以下代码进行了测试:

unsigned int number = 0;
number -= 300;
printf("%d\n", number);
Run Code Online (Sandbox Code Playgroud)

输出:-300

我记得如果unsigned int变量的值低于0,它应该环绕并且我期待输出类似于4294966996.但是从控制台打印的输出是-300.

我在C++中测试了类似的语句,它确实给了我4294966996.

我的问题是:为什么输出-300尽管它是一个unsigned int


PS:我查看了几个标题相似的帖子,但他们没有解决同样的问题:

在C中签名vs unsigned int

无符号整数差异的意外结果

c int unsigned

4
推荐指数
1
解决办法
215
查看次数

标签 统计

c ×1

int ×1

unsigned ×1