如果存在二进制点,则为最低有效位

时间:2014-01-30 12:18:40

标签: binary

如果我有八个二进制位置,例如:

  7   6   5   4   3   2   1   0 

它清楚MSB和LSB是什么 - 最重要的位是最左边的位置(7)而最低位是最右边的位置(0)

但如果我有一个binary.point(即十进制小数),即

,该怎么办?
 7   6   5   4   3   2   1   0  -1  -2  -3

这里可以说的是最重要的一位 - 是最接近二进制点的位还是位于-3的位?

关于浮点数

1 个答案:

答案 0 :(得分:2)

嗯,无论如何它是“最后一位数”

从概念的角度来看,你可以用十进制数来思考:

哪个数字最不感兴趣,如果它发生变化则最不重要的是:

123.45 $

很明显,如果我改变了5我正在改变“美分” ,这是最不重要的。

在12,345 $中,最不重要的仍然是“5”

虽然在12,345.00 $中,但最不重要的是最后0。

你在谈论小数点。

你的意思是固定代表?还是浮点数?

如果是固定表示,那么你怎么知道小数点在哪里?这是某个约会吗?

因为123.45和12,345都可以是十进制的,用“12345”表示。在第一种情况下假设我们有整数,在第二种情况下假设我们有两位小数位数。

如果你谈到使用浮点数,那么“最低有效数字”的概念将意味着尾数

中最不重要的一点

但只是谈论一个位序列的“最低有效位”,无论它意味着什么,总是“最后一个”(或“第一个”取决于约定)。

修改

对于浮点数,那么你必须记住这是一个复杂的事情。

我的意思是复杂的,你有几个“数字”以比特的形式打包到表示中。

采用“通常”64浮点(见http://en.wikipedia.org/wiki/Double-precision_floating-point_format

你有第一位的符号,接下来的11是一个整数,是“指数”,其余的是“尾数”(“小数部分”)(被认为是1.something_meant_by_your_mantissa_bits)

最后一个(第64位)是尾数的第52位(最后一位),因此是相应数字的最低有效位。但第12位也是最后一位,是11位指数的最后一位。

我将再次尝试使用十进制数字(它有点简单,与IEEE“双精度”不同)

假设我们写了8位十进制数字,其中包含5位“尾数”和3位指数。 在“1.2345 E 678”(意思是1.2345乘10至678)

“5”是“最不重要的数字”。

如果我们“打包”像IEEE双倍的数字,“3digit-exponent然后5digit-mantissa”我们会有

  

67812345

所以大块的最后一位实际上是该数字的最低位。

但是如果我们有另一个包装惯例,例如浮点数应该是“5digit-mantissa then 3digit-exponent”

  

12345678

在我们的8位数中,最不重要的是实际上是第5位而不是最后一位(第8位)。 然后最不重要的数字不是最后一位。

这在很大程度上取决于您的约定您的数字(位)的含义。

通常我们会讨论字节或字中具有内存地址或粗略位组含义的最低有效位。因此,无论如何,您可以将它们视为整数。

为方便起见,我猜测 IEEE标准的浮点数将尾数放在组的末尾,这样最后一位,即数字中最低位,对应于通常的编程意义上的“群体中最不重要的位被视为一大堆位”。