gpt4 book ai didi

c - 获取 float 的指数

转载 作者:行者123 更新时间:2023-11-30 20:23:41 25 4
gpt4 key购买 nike

我刚刚开始学习浮点并了解 SME 的东西。我仍然对尾数感到非常困惑...有人可以向我解释一下如何获得 float 的 exp 部分吗?如果这是一个 super 愚蠢和基本的问题,我很抱歉,但我很难理解它......

另外我如何实现以下功能...显然我的实现是错误的。但我该怎么做呢?

// Extract the 8-bit exponent field of single precision
// floating point number f and return it as an unsigned byte
unsigned char get_exponent_field(float f)
{
// TODO: Your code here.
int bias = 127;
int expp = (int)f;
unsigned char E = expp-bias;

return E;
}

最佳答案

如果您想从 float 值(采用 超过 127 表示法)中提取 IEEE-754 单精度指数,您可以使用float 函数,或者您可以使用带有 shiftmask 的简单 union 来执行相同的操作:

unsigned float_getexp (float f)
{
union {
unsigned u;
float f;
} uf;
uf.f = f;
return (uf.u >> 23) & 0xff;
}

如果您想要实际指数偏差(即在删除隐藏位之前标准化期间尾数小数移动的位数),只需减去127 从返回的值中减去它,或者如果您希望返回该值,请在返回之前减去它。

尝试一下,如果您有疑问,请告诉我。 (注意:指数的类型应该是无符号,而不是您拥有的int)。

关于c - 获取 float 的指数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35643058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com