C语言中无符号整数变量赋负整数为什么不报错,而且打印这个数也是负数

2024-12-18 16:50:28
推荐回答(4个)
回答1:

给一个无符号变量赋一个负数,就把这个“负数”的补码当正数对待了(unsigend的级别高于int)——这和给一个浮点变量赋一个整型数时被提升为浮点型一样——这符合C/C++的自动类型转换规则,所以不报错。至输出还是负数恐怕不对,除非你强制为int型输出,否则输出是无符号的。

回答2:

没有图你就在这吹牛B?
无符号应该是你自己的问题或者编译器的问题,反正我这里不能输出
你不放代码讨论没什么意义
最多告诉你-1用 1111 1111存储无符号输出就是255

回答3:

你一定是用%d打印的,如果用u%来打印,输出结果就不是-1了

回答4:

输出语句是什么?