导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→答案

* 35235: 请问,浮点数用汇编是怎样表示的?例如124.75

   sdqdhx 
sdqdhx发表的帖子 

 答案
这个问题我已经解决,我把方法写出来供大家参考:
浮点数占用四个字节,在内存中的格式如下:

SEEEEEEE     EMMMMMMM     MMMMMMMM    MMMMMMMM 。

      高位------------------------------------------à低位

 

由高到底一共有32位。S为符号位,在最高位占一位。“1”表示负,“0”表示负。E为阶码,占用8位,阶码E值是以2为底的指数再加上偏移量127,这样处理的目的是为避免出现负的阶码值[小注1]。M为尾数的小数部分,用23位二进制表示。

第一步:

124.75D=1111100.11B,转换方法为:整数部分直接转换,小数部分则乘2取整,得到上面结果。

第二步:

1111100.11B=1.11110011*2E6B,计算方法为:将结果的小数点向右6次得到初值。注意:尾数的整数部分永远为1,因此不予保存,但它是隐含的。

第三步:

尾数为11110011,指数为6,(整数部分不予保留)。根据C51的规则,指数要加127,所以指数应为6+127=133D=10000101B,组合起来就是:01000010 11111001 10000000 00000000  (42 F9 80 00)

计算结束。

小注1:因为阶码是可正可负,其范围从-126----------127,在这里如果再出现负值表示起来颇为不便 ,所以,人们为了表示上的方便,特意做了处理。让实际的值加上127,这样就能保证是大于0的值。


至于小注是我自已想的可能不对,可能还有别的原因。




发表时间:2003年6月20日19:16:47

  
回复该帖

本主题共有 8 帖,分页:>>>>>该主题的所有内容[8]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  35370.[详细]那51中的指数部分不加127吗?
摘要:......(无内容)
- [alvinyang][1723次] 2003年6月23日

[上一篇帖子]:我觉得35岁便想开始收获,尚早。我认为40岁比较合适,虽然每个人情况不同,但大致如此。我今年37岁了
[下一篇帖子]:怎样将protel原理图弄到WORD中?我试着将protel原理图调入到photoshop中后以图片