存储与运算都用二进制吗,为什么用二进制来存储数据

首页 > 经验 > 作者:YD1662022-11-06 18:39:15

反码值转化为十进制公式

以0001,0101,1011,1111为例子,按照上面公式计算如下图所示

存储与运算都用二进制吗,为什么用二进制来存储数据(13)

反码值转化为十进制例子

补码:

最高位为符号位,1表示负数,0表示整数,对于负数,剩余的位数取反后,然后加1,再按照【无符号二进制整数】转化为十进制,例如4位二进制数1001,最高位为1,剩余的位数为001,取反后就是110,然后加1=111,111按照【无符号二进制整数】转化为十进制就是7,就是7,所以结果为-7,补码的值的计算公式如下图

存储与运算都用二进制吗,为什么用二进制来存储数据(14)

补码转化为十进制公式

以0001,0101,1011,1111为例子,按照上面公式计算如下图所示

存储与运算都用二进制吗,为什么用二进制来存储数据(15)

补码值转化为十进制例子

总结下原码,反码,补码

这三种编码的正数编码都相同,负数编码各不同。

原码在计算机硬件用处不多,在【二进制浮点数】的计算中用到了。

反码与补码比较类似,对于负数的反码和补码,同样的二进制,转化后反码后比转化后的补码大1,从它们的计算公式也可以看出。

快速获取一个n位二进制的补码,有两种:

1.对n位二进制取反后 1就是这个n为二进制的补码,例如0111=7取反后1000 1=1001就是-7,对1001=7取反后0110 1=0111就是7

2.2的n次方-n为二进制数,例如0111的补码就是10000-0111=1001,1001的补码就是10000-1001=0111

补码还有以下几个特点:

1.补码是互补的,x (-x)=0例如一个4位二进制,1001 0111=10000舍弃1就是0000

2.补码0是唯一的,不像原码和反码有两个0,不存在二义性

3.n为二进制补码数范围为-2的n-1次方~2的n-1次方-1,例如一个8位二进制数范围为-128~127,正数部分比负数少了一个数,因为0占用了,因此总共有128个负数,0,127个正数。

4.补码加法和减法使用同样的硬件完成,减法可以用被减数的补码实现,例如3-5,就是用3加5的补码实现。

基于上述的几个特点,在几乎所有的计算机中采用补码来表示【有符号二进制整数】

补码的加减法与【无符号二进制整数】加减法的类似,唯一不同的是出现溢出的处理方式不同,下面介绍一下,如下图

存储与运算都用二进制吗,为什么用二进制来存储数据(16)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.