x=10,y=-6,采用6位机器数表示,使用原码不恢复余数法计算[x/y]的商和余数,写出详细过程
时间: 2024-06-03 18:07:54 浏览: 34
首先将x和y表示为6位原码:
x = 001010
y = 110010
因为y为负数,所以需要先将y取反加1,得到它的补码表示:
y = 001110
接下来进行除法运算:
1. 将x和y的绝对值相除得到商和余数的绝对值:
001010 ÷ 001110 = 0011 ... 1010
所以商的绝对值为0011,余数的绝对值为1010。
2. 判断商和余数的符号:
因为x和y的符号不同,所以商为负,余数为正。
3. 将商和余数转换为原码:
商的绝对值为0011,加上符号位之后为11011,所以商为-11。
余数的绝对值为1010,加上符号位之后为01010,所以余数为10。
所以,[x/y]=-11,余数为10。
相关问题
用原码不恢复余数法计算x/y x=0.10101 y=0.11011
首先将小数转化为二进制:
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,与
6.用原码恢复余数法和不恢复余数法计算x÷y (1)x=0.11000 y=-0.11111 (2)x=-0.01011 y=0.11001
1.
使用原码恢复余数法:
首先将x、y转换为补码:
x=0.11000→补码=1.01000
y=-0.11111→补码=1.00001
然后将x、y的符号位相除,得到商的符号位为1,表示商为负数。
接着用补码除法计算,得到的商为1.01111,将其转换为原码得到:
1.01111→补码=1.10001→原码=-0.10001
因此,0.11000÷-0.11111=-0.10001。
使用不恢复余数法:
首先将x、y转换为补码:
x=0.11000→补码=1.01000
y=-0.11111→补码=1.00001
然后将x、y的符号位相除,得到商的符号位为1,表示商为负数。
接着用补码除法计算,得到的商为1.01111。
由于不恢复余数,我们只需要保留商的小数部分,即去掉整数位的1,得到的结果为0.01111。
将其转换为原码得到:
0.01111→补码=0.01111→原码=0.01111
因此,0.11000÷-0.11111=-0.01111。
2.
使用原码恢复余数法:
首先将x、y转换为补码:
x=-0.01011→补码=11110101
y=0.11001→补码=00011101
然后将x、y的符号位相除,得到商的符号位为1,表示商为负数。
接着用补码除法计算,得到的商为1.10011,将其转换为原码得到:
1.10011→补码=1.01101→原码=-0.01101
因此,-0.01011÷0.11001=-0.01101。
使用不恢复余数法:
首先将x、y转换为补码:
x=-0.01011→补码=11110101
y=0.11001→补码=00011101
然后将x、y的符号位相除,得到商的符号位为1,表示商为负数。
接着用补码除法计算,得到的商为1.10011。
由于不恢复余数,我们只需要保留商的小数部分,即去掉整数位的1,得到的结果为0.10011。
将其转换为原码得到:
0.10011→补码=0.10011→原码=0.10011
因此,-0.01011÷0.11001=-0.10011。