C语言求IEEE754加法例题,简单的ieee754单精度浮点数加法实现

ieee754单精度浮点数的格式如下:

31     30         23 22                                    0

Sign |   exponent   |             fraction                  |

如果 0 < exponent < 0xff, 那这个就是规范normalized number.

value = -1**S X 2 **(exponent - 127) X (1.fraction)

考虑简单的情况,计算两个单精度浮点数的基本过程如下:

1. 把两个浮点数的指数对齐,就是把指数变换为其中较大的一个

2. 取mantissa的和

3. 处理结果(rounding, error之类的处理)

c语言例子如下:

#include

float a = 2.4;

float b = 3.5;

// simple ieee 754 single precision float number

// addition arithmetic.

// format:

// S  E   F

// 1  8   23

float test1(float a, float b)

{

float c = 0;

unsigned int p1 = *((unsigned int *) &a);

unsigned int p2 = *((unsigned int *) &b);

// compute exponent difference

// essentially, we must

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值