【发布时间】:2017-05-30 09:41:28
【问题描述】:
我需要编写两个数字相加的函数,但我们有一个不支持变量类型浮点的处理器!
所以要表示分数,就是用长整数表示,实际用4B-32bit表示。
我们定义长比特如下:
标记为 S -signed 的 MSB。
标记为 E 之后的 8 位 - 指数。
剩余的 23 位标记为 M 尾数。
以下公式表示long中的分数:
(E^2)(M)(S^-1).
我需要编写函数:
unsigned long add(unsigned long float1, unsigned long float2)
接收两个 long 值(实际上是分数),将它们相加并以 long 形式返回答案。
我试图做这样的事情,但我卡住了。
unsigned long add(unsigned long float1, unsigned long float2) {
char E1=float1>>23, E2=float2>>23, E3;
。 . . .
谢谢:)
【问题讨论】:
-
什么语言/环境?
标签: floating-point precision long-integer floating-accuracy