关于定点数和浮点数的问题

wn1983   2010-3-23 14:19 楼主
把短点数C1C90000H转换成为十进制
(1)

将十六进制代码写成二进制,并奋力出符号位,阶码和尾数
    因为;   C1C90000H=11000001110010010000000000000000
      
             符号位=1

             阶码=10000011

             尾数=10010010000000000000000
(2)

        计算出阶码真值(移码-偏置数)

        10000011-1111111=100

(3)


         以规格化二进制数形式写出次此数

               1.0000011x2的4次方


        我就不懂了那个1是从哪来的?为什么是那样表示

(4)

        写成非规化二进制形式

              11001.001                                       注:规划和非规划化的区别是什么?实在是不懂!(5)


             转化成十进制数并加上符号位

             (11001.001)2=(25.125)10

     所以,         
[
             该浮点数=-25.125


                         哎:                怎么又变成负数了?





高手们,请教你们啊!

回复评论 (8)

这问题刚才不是已经回答过了吗

因为任何二进制的小数都可以归纳为
1.XXXXXXXX * 10的N次方(此处X代表0或1)
而为了能够表示更多的位数来增加显示范围,在计算机存储中

浮点数的存储,尾数全都是以1为个位数的二进制小数
也就是说尾数=10010001000000000000000
其代表的是0.10010001000000000000000
而真实值为1.1001000100000000000000
点赞  2010-3-23 14:37
第(3)中我写错了一个,应该是1.1001001x2的4次方
不懂1001001这个是代表什么?
也不懂那个“规划和非规划化的区别是什么?”
点赞  2010-3-23 14:47
我知道你问的是什么意思,当时我在这个问题上也困扰了一段时间
后来弄明白了,总结出来的结果就是

浮点数的存储,尾数全都是以1为个位数的二进制小数
也就是说尾数=10010001000000000000000
其代表的是0.10010001000000000000000
而真实值为1.1001000100000000000000

这里的个位是被省略掉的,是默认为1的,所以我们看到的只是小数点后面的数字的记录,这种做法的好处就是能够覆盖更多的数字,一倍的差距。而计算机在从寄存器中读取该浮点数的记录并转化为我们可读的数字或者用于计算的时,已经把这个被省略的默认的“个位1”给重新加入进去了。所以才造成了视觉得偏差

至于后面得出的结果,因为是C1C90000,说明首位符号位是1,次特性不会被阶码和位数的计算影响,确定是负数

“规划和非规划化的区别是什么?”这个可能是某个教材中的作者惯用的叫法,我没什么印象了,有原文么?规格化则表示“0.6=1.00110011001(B)”等式中右半部的显示方式,区别在于小数点的位置和第一位是否为1“0.1010101”或“1001.101”这样都不是规格化显示
点赞  2010-3-23 15:08
关于规格化的部分,有一些是我自己的理解,不能保证完全正确
点赞  2010-3-23 15:10
关于规格化的部分,有一些是我自己的理解,不能保证完全正确
点赞  2010-3-23 15:10
你这样一说我就差不多都懂了,我也这事为考研打好基础,不留任何问题到以后。

你说的如果是1的话就是规划化的,是0就是非规划化的?
  是不?

   我只是看到了规划化和非规划化,所以就问一下,想了解一下他们的区别是什么?
   

那个  1.1001001x2的4次方
                             不懂1001001这个所代表什么?


  只剩这唯一一个问题了,帮帮忙,解答一下哦,谢谢你了,你真是厉害!
佩服啊
点赞  2010-3-23 15:17
C1C90000H=11000001110010010000000000000000

符号位=1

阶码=10000011

尾数=10010010000000000000000

首先是符号位,判断正负
然后是阶码,你刚才已经算出来是100,也就是十进制的4
这里的尾数10010010000000000000000把后面的0都省略掉,就是1001001
加上默认的个位1,可知该浮点数为
1.1001001 * 2的4次方
那么得出结果是小数点后移4位
11001.001
前半段换算可得25,后半段换算的0.125
结果就是25.125
然后再把符号加上,因为是负数
所以结果是 -25.125
点赞  2010-3-23 15:24
谢谢啊,明白了
点赞  2010-3-23 17:33
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复