在学习之前,我们先来看一段代码的计算。为什么会出现这样的结果呢?
在计算机中最主要的数据类型有无符号整型、有符号整型、浮点数、布尔值
就是真/假,1或者0。在计算机中用最小的1个字节表示,即8位。
即我们数学中的正整数,在计算机中使用二进制的原码表示无符号整数,没有正负号占位。在32位电脑中,最大数为2^32-1,最小值为0。
带符号的整型,用最高位表示正负号。0表示正号,1表示负号。所以,在32位电脑中,最大值为2^31-1,最小值为-2^31。在计算机中,带符号整型的整数部分用补码表示。正数的补码还是自己,负数的补码是符号不变,其余各位取反,末尾加1。即[-1]=[100000001]原=[11111111]补
那么问题来了为什么不用原码表示?不是更直观?更让人理解吗?首先,我们人脑知道第一位是符号位,我们可以根据正负号来进行加减法。但是,对于计算机而已,加减法已经是最基础了,要设计的尽量简单。如果计算机辨别“符号位”显然让计算