牛逼的二进制
1.前言
计算机使用二进制来表示所有形式的数据:颜色、文字、图像等。当前辈们想方设法要造一台计算机时都会遇到一个问题:怎么用电来表示数? 显然他们发现开关的开和关正好对应二进制的0和1,然后计算机就使用二进制直到如今。
那计算机怎么使用二进制表示负数呢?怎么表示小数?怎么进行运算呢?
2.用二进制表示负数
由于二进制不能表示负数,所以必须使用正数来表示负数,将最高位当符号位使用,0正1负,这样就可以使用加法来进行减法运算。
而补数就是用正数表示负数,一个正数的补数就是它的负数,所以二进制数与它的补数相加结果必为0。
获得补数的方法是将二进制数取反加一。
注意:运算结果是负数时,也是用补码来表示。将其返回到源码再在前面加负号就是运算结果。
3.用二进制进行乘法和除法
二进制进行乘除是使用移位运算,将二进制数总体进行左移或右移。
-
左移:移动后空出来的最低位补0:
-
右移分为逻辑右移和算数右移,逻辑右移移动后空出来的最高位补0,例如霓虹灯;算术右移移动后空来的最高位补移位之前符号位的值。