floating-point - 如何对 IEEE754 中表示的浮点数执行乘法运算
问题描述
给定一个浮点数M在 IEEE754 中表示为
0 10000000 01010101010101010101010
如何计算Round(Mx20)的结果?
我知道如何将M转换为标准化形式,
M = 1.01010101010101010101010(base 2) x 2^1
但是我不知道如何有效地手动进行乘法M x 20,因为尾数中有很多数字。
任何提示表示赞赏!
解决方案
前进的道路是标准的长乘法方法,但以 2 为底:
1.01010101010101010101010101010101010 = 1 ×20 = 1.0101010101010101010101010101011 2 • 2 1 × 5 • 4 = 1.0101010101010101010101010101010101011 2 • 2 1 × 5 • 2 2 = 1.010101010101010101010101010101010101010101010101010101010101010101010101010111111111110110102
1.01010101010101010101010 2 • 2 1 101 2 • 2 2 × _________________________________ 1.01010101010101010101010 2 • 2 3 00.00000000000000000000000 2 • 2 3 101.01010101010101010101000 2 • 2 3 + _________________________________ 110.10101010101010101010010 2 • 2 3
然后我们要将有效位四舍五入为 24 位,以粗体显示:110.1010101010101010101 0010 2 • 2 3。
所以结果是 110.1010101010101010101 2 • 2 3或 1.1010101010101010101010010 2 • 2 5。
推荐阅读
- java - 使用 WSS4J 签署 XML。没有 ID 为“noXMLSig”的消息
- css - 我可以设置元素的大小以适应其潜在内容,而不是其实际内容吗?
- java - 为什么这个对象在这个 ArrayList 中作为“未知类”出现?
- php - 如何将所有访问文件夹的尝试重定向到索引,但服务器?
- c++ - vk::DeviceQueueCreateFlags() 实际上做了什么?
- php - 使用控制器转到其他页面时 $row 值丢失
- laravel - 如何找到重定向到 oauth 客户端回调的引用者
- swift - 在 Swift 中,您能否创建一个协议,该协议仅在关联类型的特定条件成立时才需要特定函数?
- javascript - 如何使用 JavaScript 将一个网站重定向到另一个网站?
- php - Php - 将数组中的数字一一相加