如何将m x 10 ^ x转换为n x 2 ^ y。
我想将2.93 x 10 ^ 12转换为IEEE-754表示。
答案 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);