首页 > 其他 > 详细

原码、反码、补码

时间:2020-03-11 22:52:51      阅读:87      评论:0      收藏:0      [点我收藏+]

在了解原码、反码、补码的前提下,先要了解什么是机器数真值

机器数:

  定义:一个数在计算机中的二进制表示形式,叫做这个数的机器数,机器数是带有符号的,最高位存放符号:正数为0,负数为1

  例如:+3 的机器数是:00000011

             -3 的机器数是:10000011

真值:

  定义:机器数的10000011代表的是-3,但实际上计算出来 int(‘10000011‘,2) =131,在这里我们把-3称为真值,把131称作形式值

 

原码:

  定义:原码就是机器数

反码:

  定义:正数的反码是其本身;负数的反码是在其原码的基础上, 符号位不变,其余各个位取。

  例如:[+1] = [00000001]原 = [00000001]反

             [-1] = [10000001]原 = [11111110]反

补码:

  定义:正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

  例如:[+1] = [00000001]原 = [00000001]反 = [00000001]补

             [-1] = [10000001]原 = [11111110]反 = [11111111]补

 

备注:现在我们知道了一个数有三种编码方式:原码、反码、补码,对于正数而言这三种形式都是一样的,负数则是完全不相同的

为什么要使用原码,反码,补码?

  在计算机中是没有减法的,那么计算机时如何实现减法这个功能的呢?是使用补码来计算的,例子如下:

  1-1 

  = 1 + (-1) 

  = [0000 0001]原 + [1000 0001]原 

  = [0000 0001]补 + [1111 1111]补 

  = [0000 0000]补

  =[0000 0000]原

  =0

  备注:使用补码, 就可以很好的处理减法的问题,就不用在为计算机设计复杂的基础电路来实现减法的功能了。

原码、反码、补码

原文:https://www.cnblogs.com/su-sir/p/12465349.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!