二进制专题(持续更新)

机器数和真值

在计算机中,表示数值的数字符号只有 0 0 0 1 1 1 两个数码,无法在二进制数前再加正负号,
所以我们规定最高位为符号位 ,并用 0 0 0 表示正数符号,用 1 1 1 表示负数符号。
这样,机器中的数值和符号全“数码化”了。

简化机器中数据的运算操作,人们采用原码、补码、反码以及移码等几种方法对数值位和符号位统一进行编码。

为区别起见,我们讲在机器中的这些编码称为 机器数
(如 10000001 10000001 10000001
而将一般书写表示的数称为 机器数的真值
(如 − 0000001 -0000001 0000001


数的原码、反码和补码表示

我们一般只会记忆它们之间怎么转化,但是,

你知道它们究竟是什么吗?

原码、补码、反码实际上是上文所讲的 机器数 的 表示方法
它们表示的是一个机器数的不同形式。
为什么要有不同形式? 正如上文的高亮所说,是为了简化机器中数据的运算操作,最后是简化到只需要进行加法运算。

我们按惯例先介绍一下它们之间的转化方式:
x = 1100110 x=1100110 x=1100110 ,则 [ x ] 原 = [ x ] 反 = [ x ] 补 = 01100110 [x]_{原}=[x]_{反}=[x]_{补}=01100110 [x]=[x]=[x]=01100110
x = − 1100110 x=-1100110 x=1100110 ,则 [ x ] 原 = 11100111 [x]_{原}=11100111 [x]=11100111 [ x ] 反 = 10011000 [x]_{反}=10011000 [x]=10011000 [ x ] 补 = 10011001 [x]_{补}=10011001 [x]=10011001

对于正数来说,它的原码、反码、补码都是它的真值本身。
对于负数来说,它的原码是把真值前的负号换成 1 1 1 ,反码是 它的原码对所有数值位取反的结果 ,补码是它的反码加 1 1 1

注: [ − 10000000 ] 原 = 10000000 [-10000000]_{原}=10000000 [10000000]=10000000
如何用加法实现减法运算?

我们不把它看成 一个数减一个数 ,
而是一个负数和另一个数相加,
用补码表示法表示这两个数,再相加,
得到一个 机器数 ,
把它看成补码表示法表示的数,
最后用原码还原,得到正确的值。


数的定点表示和浮点表示

在计算机中,小数点一般有两种表示法:
一种是小数点固定在某一个位置的 定点表示法
另一种是小数点的位置可任意移动的 浮点表示法

定点表示法

机器中所有数的小数点是固定不变的,因而小数点就不必使用记号表示出来。
实际上,小数点可固定在任何一个位置上。

浮点表示法

在数的定点表示法中,由于数的表示范围较窄,常常不能满足各种数值问题的需要。为了扩大数的表示范围,方便用户使用,有些计算机常采用浮点表示法。
表示一个浮点数,要用两部分:
尾数阶码

尾数:用以表示数的有效数值
阶码:用以表示小数点在该数中的位置

计算机多数情况下采用浮点数表示数值,它与科学计数法相似,
把一个二进制数 通过移动小数点位置 表示成阶码和尾数两部分:
N = 2 E × S N=2^{E}\times S N=2E×S
其中: E E E N N N 的阶码,是有符号的整数,
S S S N N N 的尾数,是数值的有效数字部分,一般规定取二进制纯小数形式。

例:
1011101 B = 2 + 7 × 0.1011101 1011101B=2^{+7}\times 0.1011101 1011101B=2+7×0.1011101
101.1101 B = 2 + 3 × 0.1011101 101.1101B=2^{+3}\times 0.1011101 101.1101B=2+3×0.1011101
0.01011101 B = 2 − 1 × 0.1011101 0.01011101B=2^{-1}\times 0.1011101 0.01011101B=21×0.1011101


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值