数据在计算机中的表示

数据在计算机中的表示(原码、补码、反码)

数制

数制也称计数制,是用一组固定的符号和统一的规则来表示数值的方法

  • 十进制(就是我们生活中常用的数制,逢10进1)
  • 二进制(计算机中表示所有数据都使用的二进制,逢2进1)
  • 八进制(逢8进1)
  • 十六进制(逢16进1,0-9,a-f)

二进制

  • 二进制数只有两个不同的数码,0和1
  • 逢2进位
    比如二进制数1和1相加: 1 + 1 = 10B
  • 2进制数可以通过权相加的方法换算成10进制数
    比如二进制数 1111.11转换成十进制数
    1111.11B = 1 x 23 + 1 x 22 + 1 x 2 1 + 1 x 20 + 1 x 2-1 + 1 x 2-2
    =8 + 4 + 2 + 1 + 0.5 + 0.25
    =15.75D

原码、补码、反码

由于计算机电路只是加法器,所以进行加法运算是最简便的,这三种编码的出现就是为了解决减法的问题

注意: 补码反码都是相对与模的概念说的,直白的来说,就是求补码,反码都是在一定的数据范围内的,在下面的例子中,我们以4位2进制数来进行运算,那么模就是10000,换算成10进制就是2^4,范围就是-8 ~ +7

在生活中,数的正负都是用‘+’和‘-’来表示的,但是计算机中只有0和1,难以表示这种符号,所以将符号数字化,就是用0表示正,1表示负。通常,把符号数字化了的数称作机器数。数本身,称作真值。
机器数用三种方法表示:原码、补码、反码。

模的概念

举一个简单的例子来说明这个概念:

  • 加入现在是4点,但是时针指在5点的位置,我们要把时针拨到准确的时间就有两种办法:
    1、将表针逆时针拨1格,从五点拨到四点
    2、将表针顺时针拨11格,也能从五点拨到四点
    那么就得出了一个结论,如果忽略表针多转了一圈,那么 +11 和 -4 的效果是一样的
  • 用上面的例子说,这个表针的模就是12,因为这个模,我们 +11-4的效果是一样的,由于计算机电路只是加法器,那么依照这个原理,就能把减法变成加法,但是这样就要规定计算的范围,超出范围就不行了,就好比表针只能在十二个格子上来回拨动一样,不可能在十三个格子上拨。

原码

符号0表示正数,1表示负数,其余位表示数本身,称作原码表示法
举个例子:

十进制数二进制数原码
71110111
-7-1111111

表中原码列黄色的数字就是符号位,不参与运算,只表示数的正负

反码

反码表示法规定:正数的反码与原码相同,负数的反码是对正数逐位取反,符号位保持不变

数字原码反码
701110111
-711111000

补码

将负数表示为正数,将减法变为加法,把加减运算变成单纯的加法运算
补码表示法规定:正数的补码与原码相同,负数的补码是在其反码末位加一

数字原码反码补码
7011101110111
-7111110001001

总结

总而言之,原码,反码,补码就是为了在计算机中实现加法和减法而产生的,就是想办法将减法运算转换为加法运算。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值