你在问题里说取值范围是“-(1-2^-n)到(1-2^-n)”是不准确的,这只是反码(1's complement)表示的范围。但最最常用的是补码(2's complement),所以取值范围是-1到(1-2^-n)。你只用抓住二进制的本质就行了,N bit的二进制数,只有2^N种排列组合方式,也就是最多只能表示实数轴上的2^N个点。定点的好处是它是线性的,且相邻两点之间的距离是均匀的。相邻两点之间的距离等于多少(也就是定点表示的精度),取决于你的小数点打在哪里。而小数点打在哪里同时也决定了表示的数值范围。