【计组】十进制数表示成浮点规格化数——超详细解题过程

将下列十进制数表示成浮点规格化数,阶码为4位,尾数为10位,各含1位符号,阶码和尾数均用补码表示。

1.  57/128

【答案】1111, 0111001000

【解题过程】

第一步,将57/128的结果转化为二进制数

57/128=0.4453125(D)=0.0111001(B)

注:D代表十进制,B代表二进制。

第二步,将0.0111001(B)转为浮点数,调整小数点的位置,默认要将小数点放在有效数值   (即1)的前面,所以这里我们要将小数点后调一位。

0.0111001(B)=0.111001(B)*2^-1,即0.111001(B)乘以2的负一次方

第三步,将0.111001(B)*2^-1的阶码-1转化为二进制阶码的形式。

第四步,按题目要求对应规格化。

(1)阶码

阶码=阶符+阶值

根据第三步的图片,有人疑惑为什么从11变成了1001,主要是因为题目要求阶码要4位

第一位是表示阶符,剩余的3位表示阶值,根据8421法,我们就在1前面补2个0,表示的值还是1

能不能把0放在1后面呢?

当然不行,放在1后面就变成了1100,第一位是表示阶符,后面100根据8421法,就等于4了,就不匹配了

若题目要求阶码要3位,怎么写?

阶符不变,负号用二进制1表示,剩余2位表示阶值,根据8421法,我们就在1前面补1个0,表示的值还是1

但这里的阶码只是原码,题目要求阶码和尾数均用补码表示

1001(原):符号位不变,原码取反加1等1111(补)

(2)尾数

尾数=数符+尾数值

尾数的数符取决于0.111001(B)*2^-1的小数点前的是0还是1,我们这里是0,所以数符为0

尾数值为111001

尾数=数符+尾数值=0111001,题目要求10位尾数,所以我们在0111001后补3个0即可,0111001000。

由于这里是正数,所以0.0111001000(B)的反码、补码都是其本身。

所以尾数是0111001000

答案即为1111, 0111001000

2.  -69/128

【答案】0000, 1011101100

【解题过程】

第一步,将-69/128的结果转化为二进制数

-69/128=-0.5395(D)=-0.1000101(B)=1.1000101(B)

注:D代表十进制,B代表二进制,-0用1表示符号为负即可

第二步,将1.1000101(B)转为浮点数,这里小数点本身就在有效数值的前面,所以无须调整小数点的位置,为方便阶码的计算,我们写成乘以2的零次方的形式。

1.1000101=1.1000101*2^0

第三步和第四步,将1.1000101*2^0的阶码0转化为二进制阶码的形式,按题目要求对应规格化。

(1)阶码

阶码=阶符+阶值

1.1000101*2^0的阶码本身为0,题目要求阶码为4位,即阶码的原码为0000,这里的阶码的原码与其补码一致,都是0000.

(2)尾数

尾数=数符+尾数值

尾数的数符取决于1.1000101*2^0的小数点前的是0还是1,我们这里是1,所以数符为1

尾数值为1000101

尾数=数符+尾数值=11000101,题目要求10位尾数,所以我们在11000101后补2个0即可,1100010100。

由于这里是负数,所以我们给1100010100的符号位不变,数值位取反加一

所以尾数是1100010011(原)=1011101100(补)

答案即为0000, 1011101100

  • 43
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 很抱歉,作为AI语言模型,我无法直接进行计算和转换。但是,我可以告诉你如何将一个十进制表示IEEE754标准的32位浮点规格化。 IEEE754标准的32位浮点由三个部分组:符号位、指位和尾位。其中,符号位用来表示的正负性,指位用来表示的大小,尾位用来表示的精度。 具体地,将一个十进制表示IEEE754标准的32位浮点规格化的步骤如下: 1. 确定符号位:如果为正,则符号位为;如果为负,则符号位为1。 2. 将的绝对值转换二进制。 3. 将二进制规格化,即将小点移动到第一个非零位前面,并记录移动的位。 4. 计算指位:指位等于移动的位加上一个固定的偏移量(127)的二进制表示。 5. 计算尾位:将规格化后的二进制的小部分乘以2的23次方,并将结果转换二进制。 6. 将符号位、指位和尾位拼接起来,得到IEEE754标准的32位浮点。 希望这些信息能对你有所帮助。 ### 回答2: IEEE 754标准是一个指定了浮点在计算机中的表示方法的标准。在IEEE 754标准中,浮点用32位二进制表示,其中第一位是符号位,接下来8位是指,剩下的23位是尾。以下是将十进制表示IEEE 754标准的32位浮点规格化的方法: 1.将十进制转化为二进制。例如,如果要将3.14表示为32位二进制,则需要将3和0.14分别转化为二进制。 3的二进制为11,0.14的二进制可以用乘2取整法来求得:0.14*2=0.28,取整得0,再将0.28乘2,得到0.56,取整得1,继续将0.56乘2,得到1.12,取整得1,以此类推。最终得到3.14的二进制表示为11.00100011110101110000101。 2.将二进制规范化。将小点左移或右移,使得二进制的第一位是1,是为规范化。例如,将上面的二进制规范化为1.100100011110101110000101。 3.确定符号位。如果十进制是正,则符号位为0;如果是负,则符号位为1。 4.将规范化后的尾和指转化为二进制。指表示方法是将十进制加上一个偏置值,偏置值是2^(8-1)-1=127。例如,指为3时,其二进制表示为127+3=130,即10000010。 5.将符号位、指和尾合并,得到32位的二进制,即为3.14的IEEE 754标准的32位浮点规格化。 3.14的二进制表示为11.00100011110101110000101,符号位为0,指为130的二进制表示为10000010,尾为10010001111010111000010。将符号位、指和尾合并,得到32位的二进制为01000001010010001111010111000010,即3.14的IEEE 754标准的32位浮点规格化为0x4048F5C3。其中,0x表示十六进制,4048F5C3是其十六进制表示。 ### 回答3: IEEE 754标准是一种二进制表示方法,其中32位二进制按照规定格式表示浮点。给定一个十进制,需要将其转换32位的IEEE 754规范化浮点。 步骤如下: 1.将给定的十进制转换二进制。 比如,对于十进制0.15625,可以使用乘2取整法转换为二进制0.00101。 2.将二进制标准化。 标准化的二进制即将小点移到最左边,此时需要记录移动的位。 对于0.00101,需要将小点左移3位,得到规范化后的二进制1.01。 同时,需要记录移动的位,即-3,将其转换二进制0011。 3.确定符号位、阶码和尾。 符号位为0,表示。 阶码为指部分加上一个偏移值(127),即2的7次方。 对于0.00101,阶码为-3+127=124,转换二进制为01111100。 尾即去掉整部分的1之后剩余的位,此处为01。 4.将符号位、阶码和尾32位二进制。 符号位为0,占用1位。 阶码占用8位,转化为二进制为01111100。 尾占用23位,为01000000000000000000000。 最终的32位二进制为0 01111100 01000000000000000000000。 这就是十进制0.15625的IEEE 754规范化浮点表示

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值