C++中的无符号整型0-1问题

一般来说,让小学生做一个0-1的问题,她很容易得出的答案是-1。对于计算机,如果0,1都是整型即int,计算机计算得到的结果也是-1,是没错的。但计算机的计算方法和人不同,它是通过将十进制转换成二进制,以补码的方式保存的。
如果对计算机组成原理不了解的话,可以看看这位博主的介绍:计算机中减法的实现原理
对于无符号整型既unsigned int,它是32位的,范围是0~4294967295(2的32次方-1)。
所以,在c++中,如果我们定义了一个unsigned int k=0;
在用k-1,得到的结果就是4294967295。

猜你喜欢

转载自blog.csdn.net/qq_41789960/article/details/106224435