定点而不是浮点

Fixed-point instead of floating point

定点数至少需要多少位与浮点数一样精确?如果我想用定点运算而不是浮点运算进行计算,我需要多少位才能使计算不那么精确?

单精度(32位)浮点数可以表示小到2^-126大到2^127的数,是不是说定点数至少要是128.128格式? (整数部分128位,小数部分128位)。

我知道单精度浮点数一次只能表示 ~7 位十进制数字的范围,我想问的是所有可能的值。

关于双精度(64 位浮点数),是否真的需要 1024.1024 格式才能同样精确?

对于 single precision,您需要存储值在范围内的位 [2-149, 2128) 这将需要一个有符号的 128.149 定点类型,总宽度为 278 位.

对于 double precision,您需要存储值在范围内的位 [2-1074, 21024) 需要有符号的 1024.1074 定点类型,总宽度为 2099 位.

(免责声明:这一切都假设我犯了偶数次差一错误。)