小白看补码原码反码

1;引入问题
为什么计算机要采用补码来存储数据 ,而不是源码反码呢?

先介绍源码 反码 与补码的概念以及之间的关系
在这里就拿有符号的8位作为解释。。。。注意8位表示的整数范围是-128至127——这个等下再解释为什么是这样的

源码 就是 由符号位跟数值直接构造的
在源码的表示法中:正数和负数在编码表示上 只有符号位不同 数值部分完全相同
+5 0000 0101
-5 1000 0101
+0 0000 0000
-0 1000 0000
优点:与真值关系直观方便 转换简单 实现乘除简单 ->转化成左右移动逻辑运算 左移n位表示乘以2的n次方
缺点 0的表示不唯一 执行加减法复杂需要先进行判断
现代计算机中不用原码来表示整数 只用定点原码小数表示浮点数尾数部分

若计算机使用原码存储 在计算的时候不进行判断则会出现问题
+1 0000 0001
-1 1000 0001
+1 + -1 = (0000 0001 + 1000 0001) = 1000 0010 = -2 则符号错误 当不同号时要先判断绝对值的大小确定结果正负

反码 :正数的反码是它本身 而负数的反码就是他的数值位 取反
反码在计算机中使用很少 一般都是作为数码转化的中间表示形式

补码 :补码就可以实现加减法的运算统一
正数的补码就是他本身
而负数的补码是他数值位取反加一也可以说成等于模与该负数绝对值的差
介绍一下模,也就是余数
例如时钟 我正向拨动4下是不是等同于反向拨动8下
在计算机中也是如此
0000——1111——(1)0000—舍弃最高位又是一波循环了这就是补码的理念 实现加减法统一也就是这样的
减去这么多和加上那么多是一个性质
-5 1000 0101
补码 1111 1011
相加) 是不是10000000

你再可以例出几个
-1+2 = 【1111 1111】补 + 【0000 0010】= 【10000 0001】 = 0000 0001 为1;
最后说一下补码的优点
补码的0是唯一的 因此多出了以为1000 0000 负数 表示128 这也就是为什么8位表示的范围是-128到127

最后简述一下整数和小数的转化。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值