用浮点表示一个数——练习题2.52解答

作者: 小小浪把_Dont_know拍 | 来源:发表于2017-12-23 11:37 被阅读554次

《深入理解计算机系统(原书第2版)》第2章信息的表示和处理

练习题2.52 考虑下列基于IEEE浮点格式的7位浮点表示。两个格式都没有符号位——它们只能表示非负的数字。
1.格式A
有k=3个阶码位。阶码的偏置值是3。
有n=4个小数位。
2.格式B
有k=4个阶码位。阶码的偏置值是7。
有n=3个小数位。
下面给出了一些格式A表示的位模式,你的任务是将它们转换成格式B中最接近的值。如果需要,请使用舍入到偶数的舍入原则。另外,给出由格式A和格式B表示的位模式对应的数字的值。给出整数(例如17)或者小数(例如17/64)。


image.png

101 1110的转换

位101 1110对应的数字的值为15/2,这个很简单,就不赘述了。这里讲一下怎么将15/2转为格式B。

在这道习题之前,P74页已经有一个将整数值转换成浮点形式的实例了:

在图2-14中我们看到12 345具有二进制表示[11000000111001]。通过将二进制小数点左移13位,我们创建这个数的一个规格化表示,得到12345 = 1.10000001110012×2^13。为了用IEEE单精度形式来编码,我们丢弃开头的1,并且在末尾增加10个0,来构造小数字段,得到二进制表示 [10000001110010000000000]。为了构造阶码字段,我们用13加上偏置量127,得到140,其二进制表示为[10001100]。加上符号位0,我们就得到二进制的浮点表示[01000110010000001110010000000000]。

参考以上转换流程,对101 1110处理如下:

  1. 15具有二进制表示[1111]
  2. 15/2的二进制表示[111.1]
  3. 将二进制小数点左移2位,得到1.111x2^2
  4. 丢弃开头的1,构造小数字段,得到二进制表示[111]
  5. 构造阶码字段,用2加上偏置量7,得到9,其二进制表示为[1001]
  6. 最后得到格式B的浮点表示:[1001 111]

010 1001的转换

010 1001的值为25/32,同样的流程处理:

  1. 25具有二进制表示[11001]
  2. 25/32的二进制表示1.1001x2^-1
  3. 由于格式B只能表示3个小数位,舍入到偶数得到1.100x2^-1
  4. 丢弃开头的1,构造小数字段,得到二进制表示[100]
  5. 构造阶码字段,用-1加上偏置量7,得到6,其二进制表示为[0110]
  6. 最后得到格式B的浮点表示:[0110 100]

110 1111的转换

110 1111的值为31/2,流程如下:

  1. 31具有二进制表示[11111]
  2. 31/2的二进制表示1.1111x2^3
  3. 由于格式B只能表示3个小数位,1.11110做舍入到偶数为1.000x2
  4. 31/2的舍入后表示为1.000x2^4
  5. 丢弃开头的1,构造小数字段,得到二进制表示[000]
  6. 构造阶码字段,用4加上偏置量7,得到11,其二进制表示为[1011]
  7. 最后得到格式B的浮点表示:[1011 000]

000 0001的转换

000 0001的值为1/64

  1. 1/64具有二进制表示1.000x2^-6
  2. 丢弃开头的1,构造小数字段,得到二进制表示[000]
  3. 构造阶码字段,用-6加上偏置量7,得到1,其二进制表示为[0001]
  4. 最后得到格式B的浮点表示:[0001 000]

相关文章

  • 用浮点表示一个数——练习题2.52解答

    《深入理解计算机系统(原书第2版)》第2章信息的表示和处理 练习题2.52考虑下列基于IEEE浮点格式的7位浮点表...

  • 计算机组成与体系结构知识点一

    数据的表示1、如果浮点数的阶码用R位的移码表示,尾数用M位的补码表示,则这种浮点数的数值范围为: 2、浮点数的 决...

  • 列表 元组 字典

    列表用[]表示 元组用()表示 字典用{}表示 数字型 整型(int) 浮点数(float) 布尔型(bool)...

  • python 列表 元组 字典

    列表用[]表示 元组用()表示 字典用{}表示 数字型 整型(int) 浮点数(float) 布尔型(bool)真...

  • float&double

    浮点类型 用于表示有小数部分的数值。Java中有两种浮点类型, 也可以用16进制表示浮点数值。例如0.125=2-...

  • JS-数字

    JavaScript不区分整数和浮点数,所有的数字都是用浮点数表示。JavaScript能表示的数字范围我觉得没必...

  • JavaScript学习笔记

    JavaScript不区分整数和浮点数,统一用Number表示

  • 网易微专业——JavaScript 01基础篇--基本类型、运算

    JavaScript里的数值类型:1.number(包含整数、浮点数、NaN(表示不是一个数字)、Infinity...

  • 一、js印象

    1、JavaScript不区分整数和浮点数,统一用Number表示 (1)NaN:表示Not a Number,当...

  • 【PY】小语法

    计算 / 表示 浮点数除法,返回浮点结果;// 表示整数除法。 * 表示乘法;** 表示乘方,符号后面的数字表示指...

网友评论

    本文标题:用浮点表示一个数——练习题2.52解答

    本文链接:https://www.haomeiwen.com/subject/fjwfgxtx.html