相关疑难解决方法(0)

如何规范尾数

我正在尝试将inta 转换为自定义浮点数,其中用户指定为exp和尾数保留的位数,但我不明白转换是如何工作的.我的函数接受一个int值,而int exp表示数字(值*2 ^ exp),即value = 12,exp = 4,返回192.但我不明白我需要做的更改这些过程.我已经看了好几天并玩IEEE转换器网络应用程序,但我只是不明白规范化过程是什么.就像我看到它"移动二进制点并调整指数"但我不知道这意味着什么,有谁可以给​​我一个例子来解决?我也不明白指数偏差是什么.我唯一的信息是你只是给你的指数添加一个数字,但我不明白为什么.我一直在谷歌搜索一个我能理解的例子,但这对我没有任何意义

c floating-point double normalization

10
推荐指数
4
解决办法
3万
查看次数

浮动为什么是"单精度"?

我很好奇为什么IEEE称为32位浮点数单精度.它只是一种标准化的手段,还是"单一"实际上指的是单一的'某事'.

它只是一个标准化的水平?如,精度等级1(单),精度等级2(双)等等?我已经搜遍了所有关于浮点数的历史,但没有什么能完全回答我的问题.

floating-point double

8
推荐指数
1
解决办法
1622
查看次数

在什么情况下我们需要double,float和long double的函数?

在我们看到的math-headers中

extern float fabsf(float);
extern double fabs(double);
extern long double fabsl(long double);

...

extern float fmodf(float, float);
extern double fmod(double, double);
extern long double fmodl(long double, long double);
Run Code Online (Sandbox Code Playgroud)

为什么每种类型都有一个功能?这不是很多重复的代码吗?如果我在哪里写一个lerp函数或一个钳位函数,我需要为每种类型写一个吗?

似乎我们将有重复的代码,其中只有一件事发生了变化 - 类型.

extern float clampf(float value, float min, float max)
{
    if(value > max)
        return max;
    if(value < min)
        return min;
    return value;
}

extern double clamp(double value, double min, double max)
{
    if(value > max)
        return max;
    if(value < min)
        return min;
    return value;
}
Run Code Online (Sandbox Code Playgroud)

问题1:这种结构的历史原因是什么?

问题2:我应该遵循相同的模式吗?或者我应该只实现double-kind,因为它是最常见的? …

c objective-c

0
推荐指数
1
解决办法
253
查看次数

标签 统计

c ×2

double ×2

floating-point ×2

normalization ×1

objective-c ×1