重温计算机组成原理:原码、反码、补码、移码

重温计算机组成原理:原码、反码、补码、移码

原码

原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在二进制中
原码00000001+10000001=10000010,换算成十进制为-2。显然出错了。

反码

反码通常是用来由原码求补码或者由补码求原码的过渡码,反码就是原码各位取反(符号除外)。反码由于0有正负之分,所以没办法参加运算。

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

补码

补码是计算机把减法运算转化为加法运算的关键编码。

补码的表示方法是:

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

[+1] = [00000001]原 = [00000001]反 = [00000001]补

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

使用补码, 不仅仅修复了0的符号以及存在两个编码的问题, 而且还能够多表示一个最低数. 这就是为什么8位二进制, 使用原码或反码表示的范围为[-127, +127], 而使用补码表示的范围为[-128, 127].

因为机器使用补码, 所以对于编程中常用到的32位int类型, 可以表示范围是: [-2^31, 2^31-1] 因为第一位表示的是符号位.而使用补码表示时又可以多保存一个最小值.

移码

计算机中如何判断一个数是否为“机器零”有两条件,分别为当浮点数尾数为0时,不论其阶码为何值按机器零处理;另外,当浮点数阶码等于或小于它所表示的最小数时,不论尾数为何值,按机器零处理。阶码都是整数,为了机器好判断设置了移码.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值