浮点十进制到IEEE 754

时间:2012-10-18 08:55:09

标签: ieee-754

如何将m x 10 ^ x转换为n x 2 ^ y。

我想将2.93 x 10 ^ 12转换为IEEE-754表示。

2 个答案:

答案 0 :(得分:1)

两个选项:明确计算n,y:

y = ceil(log2(m * 10 ^ x)),n =(m * 10 ^ x / 2 ^ y)

仅使用整数迭代:

将整数293写入变量尾数(并保持指数的计数= 10)

exp_two=0;
while (exponent>0) {
    mantissa*=10; exponent--;
    while ((mantissa & 1)==0) {
        mantissa>>=1; exp_two++;
    }
}

编辑:在IEEE-754中假设0.5<n<=1.0。这是固定的(通过乘以/除以2直到满足条件并相应地调整指数y)

答案 1 :(得分:0)

你可以试试这个:

float f = 2.93E12;

unsigned int ui = *reinterpret_cast<unsigned int *>(&f);