为什么会输出>6啊🤔

img

a-b是unsigned int类型,所以虽然6-20小于0,但无符号整型类型时,会转换为大于0的整数

问题出在unsigned int上。
对于32位机器上,unsigned int是32位的。

我们都知道,在计算机中,数字是按补码存储在存储器中,而且使用补码进行加减乘除等各种运算,unsigned int可以解释为正数
两个数相减,在硬件中是[x]补+[-y]补 我们知道[-y]补为y的补码每一位取反加1。
此时打印出来的结果为a-b=4294967286