发现这世界上有10种人,一种是懂二进制的,一种是不懂得。

来源:赚贝金融

阅读量:浏览: 445

发布时间:2019-01-24

日常生活中,我们常用的是“十进制”。而进入数字系统,我们常与之打交道的就是“二进制”了。 从此, 这世界上就有了10种人:懂二进制的和不懂二进制的。 1+1除了等于2,还有1+1=10; 1024比1000看起来更整; 接着, 知道了“八进制”,也就无法区分“万圣节”和“圣诞节”了,因为Oct 31==Dec 25。 知道了“十六进制”,发现ABCDEF也成了“数字”; 发现这世界上有10种人,一种是懂二进制的,一种是不懂得。 下面,一起进入数字系统,看看“二进制”的必备知识之“补码”。

二进制

二进制的加法、减法、乘法和除法运算比十进制更简单。与十进制类似,二进制的每一位只能是0或1这两个符号之一,二进制的低位和相邻高位之间存在2倍关系,即“逢二进一”。 十进制中复杂的四则运算在二进制中最终被简化成了只有相加、移位(左移和右移)和取反(求补码时使用)这三种对计算机来说非常简单的基本操作。这样的简化极大地降低了计算机内部电路的复杂程度,使得计算机的运算速度大幅提升。 一个二进制位称为一个“位”或比特(Bit),每8个二进制位称为一个字节(Byte)。在数字系统中,二进制数的字长(或称位宽)是有限的。最低位称为“LSB”,最高位称为“MSB”。

有符号数与无符号数

我们在硬件实现中总是需要明确一个数是“有符号数”还是“无符号数”。8位二进制共能表达2的8次方,共256个数,能表示的无符号数的范围是0~255,表示有符号数的范围是-128~127。

补码

补码的定义是:正数的补码和原码相同,负数的补码则是在反码的基础上再加1。例如:8b'0000 0001表示1,而8b'1111 1111表示有符号数-1,8b'1000 0000表示有符号数-128。 在二进制运算中,有了补码的概念之后,减去某个正数等价于加上这个数的负数所对应的补码并舍弃溢出的进位,利用补码统一了符号位与数值位的运算。 需要注意的是,在硬件实现中如果是二个数的加减运算,为了避免溢出,计算结果需要至少拓展一位。例如(-128)+(-128)=-256, 8b'1000 0000+8b'1000 0000=9b'1 0000 0000 关于补码你如果有什么不明白或者这里没说清楚的欢迎留言交流。关于小数的表示,以及定点和浮点表示的区别将在下次分析,敬请期待。
最早发明二进制的人 最有可能是谁