- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只是对尾数位有点困惑。
在我的练习考试中,我被要求将十进制转换为 float 。根据 1 个符号位、4 个 exp 位和 5 个尾数位工作,根据我们的答案键,数字 132 表示如下:
0 1110 00001
对于上面的表示,我的实际尾数位是 0000100。
既然我只为尾数分配了 5 位,这是否意味着我们只计算最左边的 5 位,然后丢弃任何内容?
如果我有 0000101 作为其他数字,例如,我是否会丢弃最后两位,它仍然是 00001?谢谢!
最佳答案
在表示 float 的位 0 1110 00001 中:
这些位被解释:
要对 00000101 进行编码,我们不会从给定的第一位开始。我们找到第一个有效数字,对于二进制来说,它是第一个 1 位。在 00000101 中,第一个 1 位在位置 2(对应值 22)。然后,为了形成有效数字,我们从那里取 六 位,而不是五位。有效位 field 是 5 位,而 significand 是 6 位,因为对于正常范围内的数字,它包括通过指数字段编码的前一位.在 00000101 中,我们需要的六位有效数是 101000。后三位是隐含的。所以有效数字是 1.01000。
为了编码这个正数,指数为2,有效位为1.01000,我们使用0作为符号位,2+7作为指数域,01000作为有效位域,所以编码是0 1001 01000.
如果数字的前六位有效数字后有非零位,则无法以这种浮点格式表示实际数字。在这种情况下,我们可以声明一个无法完成转换的错误,或者我们可以将数字四舍五入到最接近的可表示值。大多数情况下,四舍五入是通过将数字四舍五入到最接近的可表示值来完成的——如果在有效数字后面的位以 0 开头,则向下舍入。如果它们以 1 开头并且在某处至少包含一个 1,则四舍五入。如果它们以 1 开头,之后的所有数字都为零,则该数字介于两个可表示值之间,通常的规则是选择具有偶数低位的可表示值(使有效数的最后一位为 0)。
1 “有效位”是 float 小数部分(相对于指数或符号)的首选术语。 “尾数”是对数小数部分的旧术语。尾数是对数的;添加到尾数乘以表示的数字。有效数字是线性的;乘以有效数字乘以表示的数字。
2 如果指数字段 e 全部为零,则它表示 1 减去偏差的指数,有效数字字段被解释为“0”。后跟字段的位,而不是“1”。
关于floating-point - 尾数有效位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60594962/
单精度(32 位):位除法为 like this : 所以我们有 23 位的尾数/有效数。 因此我们可以表示 2^23 个数字(通过 23 位):即 8388608 --> 7 位长。 但是 我读到尾
所以,我正在尝试编写一个函数,以其 (mantissa * 2^exponent) 格式打印给定的 float (n)。我能够得到符号和指数,但不能得到尾数(无论数字是多少,尾数始终等于 0.0000
我是一名优秀的程序员,十分优秀!