除指数和尾数的位数
Divide number of bits exponent and mantissa
按照标准,如果我们想将一个浮点数转换为 32 位的二进制,我们使用 1 位作为符号,8 位作为指数,另外 23 位作为尾数。
假设我们不想转换为 32 位,而是 15、23 或任何其他数字。
是否有规则或方法来“划分”给定的转换良好的位数?
例如:如果我们说我们要将给定的浮点数转换为 15 位,我们需要多少位到指数和尾数?
按照标准,有 "Half precision" 个浮点数,大小为 16 位。
标准是 IEEE 754:
它定义了各种不同的格式,但没有定义 15、23 等等。
如果您要定义自己的格式,本质上这是一个设计决策,用于指数的位数。
该标准定义了一种 16 位格式(半精度),其中 10 位用于尾数(有效的 3 位小数)和 5 位用于允许范围为 +-65500 的指数。
这是一个示例 16 位格式,它使用不同的位数作为尾数。它实际上只有 2 位小数精度,但基本上涵盖与单精度相同的值范围。这使得它可用于不同目的的半精度:
这里还有一个 16 位格式和 8 位格式的例子:
下面是一个没有符号位的 11 位和 10 位浮点数的示例。这些仅用于存储图像,因此不需要负值。他们使用 5 位作为尾数,以便于与半精度相互转换,这是显卡内部使用的精度:
按照标准,如果我们想将一个浮点数转换为 32 位的二进制,我们使用 1 位作为符号,8 位作为指数,另外 23 位作为尾数。
假设我们不想转换为 32 位,而是 15、23 或任何其他数字。 是否有规则或方法来“划分”给定的转换良好的位数?
例如:如果我们说我们要将给定的浮点数转换为 15 位,我们需要多少位到指数和尾数?
按照标准,有 "Half precision" 个浮点数,大小为 16 位。
标准是 IEEE 754:
它定义了各种不同的格式,但没有定义 15、23 等等。
如果您要定义自己的格式,本质上这是一个设计决策,用于指数的位数。
该标准定义了一种 16 位格式(半精度),其中 10 位用于尾数(有效的 3 位小数)和 5 位用于允许范围为 +-65500 的指数。
这是一个示例 16 位格式,它使用不同的位数作为尾数。它实际上只有 2 位小数精度,但基本上涵盖与单精度相同的值范围。这使得它可用于不同目的的半精度:
这里还有一个 16 位格式和 8 位格式的例子:
下面是一个没有符号位的 11 位和 10 位浮点数的示例。这些仅用于存储图像,因此不需要负值。他们使用 5 位作为尾数,以便于与半精度相互转换,这是显卡内部使用的精度: