将 X =-8192 表示成补码时,至少需要( )位二进制代码。

先把 8192 变换成二进制数,就是:10 0000 0000 0000。

在此基础上,就可以写出-8192 的补码。

只要 “取反加一” 就行了。

取反,就是:01 1111 1111 1111;

加一,就是:10 0000 0000 0000。

这就是-8192 的补码。

由此可知,至少需要 14 位二进制代码。

-------------------

通过补码,可不可以 “求反加一”,求得-8192 的原码呢?

要知道,在原码和反码中,都有两个零的编码:+0、-0。

而在补码中,只有一个零。

因此,原码和反码,就比补码,少表示一个数字。

巧了,14 位的原码和反码,它们就都少表示-8192 这个数字。

那么,X =-8192,就只能用补码表示,不能用原码和反码表示。

而 X = +8192,就只能写成一般的二进制数:10 0000 0000 0000,

也不能用 14 位的原码反码补码来表示。

-------------------

按照补码的定义式:

  [ X ]补 = X,    0 <= X < 2^(n-1);

  [ X ]补 = X + 2^n, -2^(n-1) <= X < 0。

那么,补码的范围,则是:-2^(n-1) ~ +2^(n-1)-1。

其中的 n 是补码的位数。

当 n = 14 时,范围则是:-8192 ~ +8191。

那么,n = 14,就是表示-8192 所用的最少位数。

 

本文完

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值