2

wiki文章目前对半精度浮点整数范围(16位)有非常清晰的描述:

0 到 2048 之间的整数可以精确表示..... 2049 到 4096 之间的整数舍入为 2 的倍数(偶数)..... 4097 到 8192 之间的整数舍入为 4 的倍数..... 8193 到 16384 之间的整数舍入为 8 的倍数..... 16385 到 32768 之间的整数舍入为 16 的倍数..... 32769 到 65536 之间的整数舍入为 32 的倍数..... 整数等于65520以上四舍五入为“无穷大”……

但是,对于定点整数,我在网上找不到有关整数范围的实用信息,它可以表示精确到 32 的整数?64?

它说半精度,0 01111 0000000001 = 1 + 2−10 = 1.0009765625(1 之后的下一个最小浮点数)

有人甚至可以说定点数据类型的等效小数吗?尤其是 在 CG 代码中。

谢谢!

4

1 回答 1

2

定点值没有单一的实现,每个实现可以表示的整数范围是不同的。对于 12 位有符号定点表示,实现者可以选择不使用这些位来表示数字的整数部分,而使用 11 位表示小数部分。在这种情况下,范围是(大约)-1 到 +1。另一方面,使用所有 11 位来表示整数部分,而没有一个位来表示小数部分,仍然是有效的定点数。对于这种情况,范围是 \$-2^{11}\$ 到 \$2^{11}-1\$。因此,对于 12 位有符号数,用于表示整数的位数可以是 0 到 11 之间的任何值。

此外,给定函数或代码块中的所有变量不一定都具有相同的定点格式。即使字长是固定的,不同的变量可能有不同的位数用于表示整数部分。

于 2013-10-04T10:53:45.590 回答