原码,反码和补码学习报告

        放假这几天,重新学习了原码反码和补码的相关知识。对原码反码和补码有了重新的认识。所以写了这篇博客,作以总结。

        学习原码反码补码时主要是看了叶子秋前辈的博客(http://www.cnblogs.com/zhangziqiu/ )。对于原码反码补码的知识写的非常详细,也引用了很多例子。通过前辈的博客,了解到一个叫做机器数的东西,就是我们常用的二进制数,比如在8位二进制中,数字1的机器数就是00000001。通过真值,明白一长串二进制符并不完全代表数字。开头的01表示这个·数据的正负。

       原码,就是符号位加上真值的绝对值, 用第一位表示符号, 其余位表示数值. 如果是8位二进制“+1”表示为00000001,“-1”表示为10000001。这样得出原码的取值范围是[-127,127]。但原码有一个问题。符号位参与运算会使整个数值发生错误会使1-1=-1.所以科学家开始思考,试图找到一种正确的方法,反码就出现了。

       反码,顾名思义,把原码反过来。因为机器数只有01,用所有的1代替原码中的零,这样“-1”就可以表示为11111110.同样,反码也有自身的缺陷,在运算中会出现+0,-0的现象。我们都知道0只有一个,没有正负之分。为了这一个看似小,却也十分重要的问题。补码应运而生。

      补码,也很好理解,就是补充。在反码的基础上进行补充,进行+1.这样一做,就完美的避免了+-0的问题。这也相当于用-128代替-0,因此补码的范围就是[-128,127].相比于原码和补码,可以储存的数据更多,减少了很多不需要的问题。也正是因为计算机的二进制运算,才会产生反码,补码这种针对于负数的解决方法。从而使得数据运算可以更加准确。

转载于:https://www.cnblogs.com/Excusezuo/p/9744575.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值