X=+0.10010怎么求[X/2]补?

把步骤写出来.谢谢.......... 把步骤写出来.谢谢....... 展开
 我来答
Fenggz
推荐于2017-09-25 · TA获得超过2427个赞
知道小有建树答主
回答量:709
采纳率:0%
帮助的人:936万
展开全部
[复习]
正数的补码=原码
负数的补码=反码+1
反码=原码上除了符号位外,其它所有取反
取反:1改为0,0改为1

X=+0.10010是十进的还是二进的?

当你的是二进的且数据位是8位(字长),有两种算法,(小数点不用0或1表示)

[方法1-常规法/土方法](中括号表示二进)
1>先换成十进的:X[原]=[+0.10010]=[00000000.1001000]=0.5625
2>进行x/2运算:X/2=0.5625/2=0.28125
3>十进换二进:乘2取整法:
0.02815x2=0.56300 取整:0
0.56300x2=1.12600 取整:1
0.12600x2=0.25200 取整:0
0.25200x2=0.50400 取整:0
0.50400x2=1.00800 取整:1
0.00800x2=0.01600 取整:0
0.01600x2=0.03200 取整:0
0.03200x2=0.06400 取整:0
---------------------------------
把上面所有整数按从上到下排列起来,排在小数位就是
.01001000,即0.01001000(虽然有误差,但因为是8个位的字长,所以只需取够8位就行)

所以X/2[原]=[00000000.01001000]
所以X/2补码为:x/2[补]=x/2[原]=[00000000.01001000]

方法二:移位法
一句话:先补够整数和小数位长,然后除符号位外,/2就全右移一位,x2就左移一位(不够的用0补)
x[原]==+0.10010=[00000000.10010000]
除符号位就是 [000000010010000](计算机内部不存小数点,所以不用管小数点是0还是1,小数点是输出时按数据类型自动填上的)
x/2:
[000000010010000](15位)全右移一位,变成
[000000001001000](15位)
恢复小数点:从右向左数8位,点上小数点
[0000000.01001000](共15位)
补上符号位:0(正数):
[00000000.01001000](16位)
所以x/2[原]=[00000000.01001000]
所以x/2[补]=x/2[原]=[00000000.01001000]
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式