设机器数长8位,定点小数,最高位为符号位,65/128的补码为_;-35/64的原码为

1个回答
展开全部
摘要 亲,
1. 65/128的补码计算:
首先将65和128化成二进制数:
65 = 01000001
128 = 10000000
然后将65的二进制数补足成8位定点小数的形式:
01000001 = 0.1000001
最后符号位为正,即为0,将0和0.1000001按位取反再加1即可得到65/128的补码:
0.1000001 取反得到 1.0111110
0.0111111 加1得到 1.1000000
因此65/128的补码为 1.1000000。
2. -35/64的原码计算:
首先确定符号位为负,即为1。
然后将35和64化成二进制数:
35 = 00100011
64 = 01000000
接着将35的二进制数补足成8位定点小数的形式:
00100011 = 0.0100011
最后将符号位、整数部分和小数部分合并起来,得到-35/64的原码:
-35/64 = 1.0100011
咨询记录 · 回答于2024-01-16
设机器数长8位,定点小数,最高位为符号位,65/128的补码为_;-35/64的原码为
亲: 1. 65/128的补码计算: * 首先将65和128化成二进制数:65 = 01000001,128 = 10000000。 * 然后将65的二进制数补足成8位定点小数的形式:01000001 = 0.1000001。 * 接着符号位为正,即为0,将0和0.1000001按位取反再加1即可得到65/128的补码:0.1000001取反得到1.0111110,0.0111111加1得到1.1000000。 * 因此65/128的补码为1.1000000。 2. -35/64的原码计算: * 首先确定符号位为负,即为1。 * 然后将35和64化成二进制数:35 = 00100011,64 = 01000000。 * 接着将35的二进制数补足成8位定点小数的形式:00100011 = 0.0100011。 * 最后将符号位、整数部分和小数部分合并起来,得到-35/64的原码:-35/64 = 1.0100011。
已知: x =-0.0110101×2^(21) Y =0.1100100×2(-11)(此处数均为二进制) 浮点数阶码用4位移码,尾数用8位补码表示(含符号位)。 (1)写出 X , Y 的浮点数表示(要求用IEEE754标准格式:数符 阶码 尾数): X的浮点数表示为:1 00001001 1010000000000000 Y的浮点数表示为:0 00010011 1000100000000000 (2)如何判定浮点补码加减运算为否溢出,并说明发生溢出时如何处理: 在浮点补码加减运算中,如果最高位(符号位)发生变化,则表示发生了溢出。此时,需要将阶码回滚,同时对尾数进行相应的调整。
(1) 由IEEE754标准可知,浮点数表示为:数符(1位) + 阶码(4位) + 尾数(8位) 对x进行表示:由于x为负数,数符为1;先将小数点左移21位得到:-1101.01;阶码 = 移码 - 偏移量 + 2^(阶码位数-1)-1 = 21 + 2^(3-1)-1 = 26(11010),用4位移码表示为1010;将小数点右移5位得到1.10101,尾数为10101000;因此,x的浮点数表示为:1 1010 1010 1000 对Y进行表示:由于Y为正数,数符为0;将小数点右移11位得到0.0001100100;阶码 = 移码 - 偏移量 + 2^(阶码位数-1)-1 = -11 + 2^(3-1)-1 = -4(1010),用4位移码表示为1101;将小数点左移4位得到1100.1000,尾数为10000100;因此,Y的浮点数表示为:0 1101 1000 1000 (2) 判定浮点补码加减运算是否会溢出的方法: 对于补码加减运算,若减数为正数或者加数为负数,应将其取反后再进行加法运算。这时,如果发生了溢出,则最高位会进一位,即发生了“进位溢出”;否则,没有发生溢出。 对于“进位溢出”的处理方法: 若两数同号,则结果正常,数符位为原数符位; 若两数异号,则不处理结果并抛出“算术溢出”异常。 例如,对x和Y进行相加: x:1 1010 1010 1000 Y:0 1101 1000 1000 将x和-Y取反得到:-x:0 1010 1010 1000-Y:1 0010 0111 1000 将两数相加得到结果: x + (-Y): 符号位(最高位) 阶码(4位) 尾数(8位) = (同号) = (正常结果) 可以发现,结果的阶码比原数的阶码都大了一位,说明发生了进位溢出。因为x和Y符号不同,所以抛出算术溢出异常,不给出结果。
设浮点数阶码为8位(含1位阶符),尾数为8位(含1位数符),则16位二进制原码浮点数对应的十进制真值范围是: 最大正数为?最小正数为?
# 根据IEEE754标准,16位二进制原码浮点数的表示方法为: - 1位阶符 - 7位阶码 - 1位数符 - 7位尾数 # 最大正数 - 阶符为0 - 阶码为0111111(最大值) - 数符为0 - 尾数为1111111 - 原码为:0 0111111 01111111 - 转换为十进制为2^127 × (1 + 127/128) ≈ 3.402 × 10^38 # 最小正数 - 阶符为0 - 阶码为0000001(最小值) - 数符为0 - 尾数为0000001 - 原码为:0 0000001 00000001 - 转换为十进制为2^(-126) × (1 + 1/128) ≈ 1.175 × 10^(-38)
已知[ x ]补= x0x1x2x3……xn,那么[- x ]补=_.
亲,为了求出[- x ]补,我们需要先确定x的补码x补。根据补码的定义,x补等于2n - x。因此,我们可以得到以下步骤: 1. 将x的补码x补表示为x0x1x2x3……xn。 2. 对x补按位取反,即将每一位0变为1,1变为0,得到x’0x’1x’2x’3……x’n。 3. 将x’0x’1x’2x’3……x’n加1,得到x’’0x’’1x’’2x’’3……x’’n。 4. x’’0x’’1x’’2x’’3……x’’n就是[- x ]补的表示。 例如,假设x = 10110,它的位数为5,则x的补码为01010(因为2的5次方为32,32-22=10)。对x的补码按位取反,得到10101。将10101加1,得到10110,即[- x ]补为10110。
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

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

说明

0/200

提交
取消