c - 当浮点数是次正规数时,frac 位会发生什么?
问题描述
我正在将浮点数转换为位。为简单起见,假设有 4 个指数位和 4 个分数位。假设 frac 位的值为 1/4,即 0100。假设 e 值为 -9,则指数为 -2(e + 偏差)。现在,我不能用 4 位表示 -2,所以我会将指数位全部设为 0。我现在得到了 (0 0000 0100),但显然这是不对的。从这一点上我该怎么办?
解决方案
当您将指数从-2
增加到 时0
,您将分数向右移动 2 位 - 它的数量是零和不可表示的指数之间的差。所以分数变成0001
了,完整的浮点数是
0 0000 0001
推荐阅读
- swift - ScrollView 导致 SwiftUI 中的按钮出现错误
- c# - 抽象泛型类的 IncludeBase 自动映射器映射失败
- argon2-ffi - 在 macbook 上安装节点 Argon2 时出现问题
- pandas - 水平表示而不是垂直表示的 csv 数据 - Python Pandas CSV
- javascript - Angular Material Paginator 在检索数据后不允许按下后退按钮
- symfony - 如何使 Symfony 表单中的 DateIntervalType 字段不需要
- reactjs - 将 reader.onload 中的字符串传递给父级
- string - 你如何在 Nim 中使用变量进行字符串插值?
- ros - ROS 控制和 Gazebo 的问题
- ruby-on-rails - X时间过去后如何使Ruby超时HTTP请求