冯诺依曼镇楼,233333333~:
众所周知,计算机世界都是采用二进制进行运算,能够表示0和1,之所以这样设计缘于电路内的电压可以表示为低位与高位,即使受到一些干扰,虽然高位的值和低位的值会有偏差,但高的始终高,低的始终低,进而能够精确地表示0和1两个值,所以最终计算机采用二进制运算,也就是“逢二进一”原则。
那二进制的一些计算由于长期未使用,或者是编程中未接触,已经开始淡忘。这里进行展开回顾:
在这里我给出一个用8个bit(8位)表示的二进制数11111010,然后要求大家求出它的十进制数的值是多少,在这里我直接给出,算出等于250,但是,这样算出的默认值是一个正数的数值,或者是一个无符号数得到的值。
我们课程学习中显然都知道可以给二进制数赋予符号位,那么我们知道了最高位是符号位以后,以上的值又应该等于十进制的多少呢?
计算之前先回顾几个概念:
1、在有符号位的前提下,符号位为0表示正数(0有可能被省略),符号位为1为负数。
2、
正数:
正数的原码、反码、补码都相同。
得到公式: 正数下 ==> 原码=反码=补码
3、
负数:
负数的反码