Math 为什么要将浮标标准化;。。。为什么在CSS rgba()中alpha是一个0到1的浮点数

Math 为什么要将浮标标准化;。。。为什么在CSS rgba()中alpha是一个0到1的浮点数,math,Math,说到这里的问题。对不起 我试图从数学的角度来理解规范化 在库中,可以对浮点进行标准化。为什么要将浮动标准化。。。在3D中,我得到一个三维平面的法线可以放弃。第一个想法:这与表演有关。但后来我发现这解释了游戏用户界面如何使用它。这我有点受不了 公平地说,在有最大值和最小值的情况下,人们会将浮动标准化吗?我可以想到两种情况: CSS颜色RGBA:RGB从0到255,但理论上可能更高。而A是从0.0到1.0。这是标准化的,因为它可以是完全透明或不透明的,因此它是正常的,因为有一个定义0或1 录制音乐(

说到这里的问题。对不起

我试图从数学的角度来理解规范化

在库中,可以对浮点进行标准化。为什么要将浮动标准化。。。在3D中,我得到一个三维平面的法线可以放弃。第一个想法:这与表演有关。但后来我发现这解释了游戏用户界面如何使用它。这我有点受不了

公平地说,在有最大值和最小值的情况下,人们会将浮动标准化吗?我可以想到两种情况:

  • CSS颜色RGBA:RGB从0到255,但理论上可能更高。而A是从0.0到1.0。这是标准化的,因为它可以是完全透明或不透明的,因此它是正常的,因为有一个定义0或1

  • 录制音乐(或查看波形)时,可以对其进行剪辑。这是因为存在一个最大值和一个最小值,所以大于1的标准化值将被剪裁?我想,在这种情况下,正常化是为了方便

  • 那么,为什么要规范化浮动呢?是表演吗?可读性?还有什么(视觉参考==荣誉)?脊椎抽头放大器一直到11与此有关吗

    为什么要将浮动标准化

    使尽可能多的位有意义

    如果浮点值始终在0.5和1.0之间,则可以假定最左边的位为1。多一点精度

    为什么要将浮动标准化

    使尽可能多的位有意义


    如果浮点值始终在0.5和1.0之间,则可以假定最左边的位为1。一个额外的精度位。

    没有一个标准化的概念。平面的法线不同于规范化向量,后者不同于规范化浮点。

    规范化没有一个概念。平面的法线不同于标准化向量,标准化向量不同于标准化浮点。

    关于“标准化”浮点的简要说明 在科学记数法中,您可以将任何数字写成
    x.y*10^z
    ,其中
    x
    是一个非零位。例如
    212=2.12*10^2
    x
    始终可以是一个位数,因为您可以一直除以
    10
    。同样地,
    x
    始终可能是非零的,因为您可以继续乘以
    10
    ,但尝试写入值
    0
    时除外<科学记数法中的code>0结果就是
    0.0*10^0

    转到浮动。。。浮点数基本上是二进制的科学记数法。它们是以
    x.y*2^z
    的形式编写的
    x
    仍然是一个非零的单个数字,但在二进制中只剩下一个选项:
    1
    !如果要在计算机中实现浮点存储,您不想浪费总是
    1
    ,因此只存储
    y
    z
    (和+/-)

    但是现在如何存储
    0
    ?事实证明,
    z
    的特殊值用于表示“
    x
    实际上是
    0
    ”,然后可以存储
    0.0
    。但您也可以存储
    0.0010100011000*2^(特殊z)
    和各种“非规范”值

    我不明白toxiclib的normalize函数做什么-我找不到文档。就我所知,非规范浮点对于相同精度的浮点没有等价的规范化表示(非规范单可以表示为正常双精度浮点,但不能表示为正常单精度浮点)。也许这就是函数所做的。但除非你处理的是一些真正低级的东西或是高精度的东西,否则你可能不会在意

    Eric Lippert对浮点数有一个详细的剖析。

    对“标准化”浮点数的简要解释 在科学记数法中,您可以将任何数字写成
    x.y*10^z
    ,其中
    x
    是一个非零位。例如
    212=2.12*10^2
    x
    始终可以是一个位数,因为您可以一直除以
    10
    。同样地,
    x
    始终可能是非零的,因为您可以继续乘以
    10
    ,但尝试写入值
    0
    时除外<科学记数法中的code>0结果就是
    0.0*10^0

    转到浮动。。。浮点数基本上是二进制的科学记数法。它们是以
    x.y*2^z
    的形式编写的
    x
    仍然是一个非零的单个数字,但在二进制中只剩下一个选项:
    1
    !如果要在计算机中实现浮点存储,您不想浪费总是
    1
    ,因此只存储
    y
    z
    (和+/-)

    但是现在如何存储
    0
    ?事实证明,
    z
    的特殊值用于表示“
    x
    实际上是
    0
    ”,然后可以存储
    0.0
    。但您也可以存储
    0.0010100011000*2^(特殊z)
    和各种“非规范”值

    我不明白toxiclib的normalize函数做什么-我找不到文档。就我所知,非规范浮点对于相同精度的浮点没有等价的规范化表示(非规范单可以表示为正常双精度浮点,但不能表示为正常单精度浮点)。也许这就是函数所做的。但除非你处理的是一些真正低级的东西或是高精度的东西,否则你可能不会在意


    Eric Lippert对浮点运算有着深入的了解。

    我知道这是一个过时的线程,但FWIW(我是上述toxiclibs的作者)-我通常更喜欢使用规范化值(即0.0..1.0或-1.0..+1.0间隔),因为它使它们在多个域中工作时更灵活。
    float val = config.min + (config.max-config.min) * normVal;