用原码不恢复余数法计算x/y x=0.10101 y=0.11011
时间: 2023-05-30 10:06:26 浏览: 268
首先将小数转化为二进制:
x = 0.10101
= 0.0010101 (补0)
y = 0.11011
= 0.0110110 (补0)
然后确定除数的位数,并在被除数后面添加相应个数的0,使得两个数的位数相同:
x = 0.0010101
y = 0.0110110
因为y有4位小数,所以将x的小数部分后面添加4个0:
x = 0.00101010000
接下来进行除法运算,每次将除数左移一位,并与被除数比较,如果被除数大于等于除数,则将商的对应位设为1,并将被除数减去除数,否则将商的对应位设为0:
1. 除数左移一位,得到0.1101100,与被除数0.00101010000比较,发现被除数小于除数,商的第一位为0。
2. 除数左移一位,得到1.1011000,与被除数0.00101010000比较,发现被除数小于除数,商的第二位为0。
3. 除数左移一位,得到1.0110000,与被除数0.00101010000比较,发现被除数小于除数,商的第三位为0。
4. 除数左移一位,得到0.1100000,与被除数0.00101010000比较,发现被除数大于等于除数,商的第四位为1,并将被除数减去除数,得到0.00001010000。
5. 除数左移一位,得到1.1000000,与
相关问题
用原码不恢复余数法计算x÷y(1)x=0.10101,y=0.11011(2)x=-0.10101,y=0.11011
(1)x=0.10101,y=0.11011
首先将被除数x和除数y转换成十进制数:
x = 0.10101(2) = 0.65625(10)
y = 0.11011(2) = 0.8125(10)
然后进行除法计算:
0.65625 ÷ 0.8125 = 0 ... 0.65625
0.65625 × 2 = 1.3125,余数为 0.5
0.5 ÷ 0.8125 = 0 ... 0.5
0.5 × 2 = 1,余数为 0
0 ÷ 0.8125 = 0 ... 0
所以,0.10101(2) ÷ 0.11011(2) = 0.10000(2)。
(2)x=-0.10101,y=0.11011
首先将被除数x和除数y转换成十进制数:
x = -0.10101(2) = -0.65625(10)
y = 0.11011(2) = 0.8125(10)
由于是负数除以正数,需要在商的最高位填上1,表示负数。
然后进行除法计算:
-0.65625 ÷ 0.8125 = -1 ... -0.15625
-0.15625 × 2 = -0.3125,余数为 0.5
0.5 ÷ 0.8125 = 0 ... 0.5
0.5 × 2 = 1,余数为 0
0 ÷ 0.8125 = 0 ... 0
所以,-0.10101(2) ÷ 0.11011(2) = -1.00100(2)。
X=0.10110,Y=-0.11111,用补码不恢复余数法计算求X/Y,给出商Q和余数R
好的,按照您的要求,我来回答这个问题。
首先,将被除数X和除数Y转换为补码形式,即X的补码为0.10110,Y的补码为1.00001。接着,我们使用不恢复余数法进行除法运算,具体步骤如下:
1. 将X的补码和Y的补码对齐,即将Y的补码右移一位,得到10.0001。
```
0.10110 (X)
- 1.00001 (Y)
--------
0.10111
```
2. 计算余数R,即将上一步的结果转换为原码,得到-0.01001。
3. 如果余数R为负数,则将余数加上除数Y的绝对值,得到新的余数R。在此例中,余数R为负数,所以需要进行加法运算。将Y的补码取反加1,即得到除数Y的绝对值的补码为0.11111,将余数R和除数Y的绝对值相加,得到-0.01001 + 0.11111 = 0.10110,即新的余数R为0.10110。
4. 将商Q的最低位设置为1。
5. 将余数R左移一位,得到1.0110,然后重复以上步骤,直到余数R为0或达到所需的精度。
因此,X/Y的商Q为1.1011,余数R为0.10110。