【发布时间】:2015-12-16 00:50:21
【问题描述】:
我正在编写一个函数,它将获取浮点数(IEEE 754 标准)的指数,但由于某种原因,当我对返回的数字使用右移位运算符时,它返回 0
这里是函数
int get_exp (int x)
{
return ( ((x >> 21) & 255) -127 );
}
我将它传递给 7.23,所以输出应该是 2,由于某种原因, (x >> 21) 部分在它实际上应该返回 129 时返回 0。255 是我用来和 (& ) 与浮点数的指数部分。
【问题讨论】:
-
邮政编码示例“我通过了 7.23”
-
为什么上面的代码右移了
21而不是23位?
标签: c floating-point numbers exponent