当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

Vdsp(bf561)中的浮点运算(5):float范例表示总结[VC/C++编程]

赞助商链接



  本文“Vdsp(bf561)中的浮点运算(5):float范例表示总结[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

1.1 float的疑问

写一行很简单的C代码:

float a = 1234.56;

用vdsp编译后的汇编代码为:

R0 = 20972 ( X ) ;

R0.H = 17562 ;

[ FP + 0x10 ] = R0 ;

有点看不懂,呵呵,R0的值转换为十六进制就是0x449A51EC.按照vdsp文档的说法,其单精度浮点数格局为:

浮点数计算公式:

将0x449A51EC转换为二进制:

0100 0100 1001 1010 0101 0001 1110 1100

可得:

Sign = 0

Mantissa = 001 1010 0101 0001 1110 1100

Exponent = 1000 1001

按照公式

将Exponent转换为十进制,其值为137.

将Mantissa转换为十进制,其值为:

2-3 + 2-4 + 2-6 + 2-9 + 2 -11 + 2-15 + 2-16 + 2-17 + 2-18 + 2-20 + 2-21 =

0.125 + 0.0625 + 0.015625 + 0.001953125 + 0.00048828125 + 0.000030517578125 + 0.0000152587890625 + 0.00000762939453125 + 0.000003814697265625 + 0.00000095367431640625 + 0.000000476837158203125 = 0.205625057220458984375

代入浮点数计算公式:

(-1)0 + 1. 205625057220458984375 * 2 (137-127)

= 1234.56005859375


  以上是“Vdsp(bf561)中的浮点运算(5):float范例表示总结[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • Vdsp(bf561)中的浮点运算(7):float乘法运算
  • Vdsp(bf561)中的浮点运算(8):float除法运算
  • Vdsp(bf561)中的浮点运算(9):long double和float的对比
  • <b>Vdsp(bf561)中的浮点运算(10):fract16范例表示</b>
  • Vdsp(bf561)中的浮点运算(11):fract16与float的转换
  • Vdsp(bf561)中的浮点运算(12):fract16加减运算
  • <b>Vdsp(bf561)中的浮点运算(13):fract16乘法运算</b>
  • <b>Vdsp(bf561)中的浮点运算(14):fract16除法</b>
  • Vdsp(bf561)中的浮点运算(15):vdsp库的一个BUG
  • Vdsp(bf561)中的浮点运算(16):fract2x16范例
  • Vdsp(bf561)中的浮点运算(3):FLT_MIN
  • <b>Vdsp(bf561)中的浮点运算(4):FLT_MAX</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .