这里用了一下《深入理解计算机系统》中的几个习题来具体说明了一下

主要分为以下几个步骤:

1、转换为二进制

2、写为IEEE 754表达格式

3、求尾数、阶码、符号位

4、机器码以及十六进制表示

+1.75:

二进制表示:+1.11

IEEE 754表达形式:(-1)^s X 1.f X 2^(e-127),

s = 0(符号位)

1.f = 1.110000..00(尾数)

e-127 =0,e=127=0111 1111 (阶码)

符号:正数为0

十六进制:3FE00000H

0

0

1

1

1

1

1

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

+19:

二进制表示:+0001 0011

IEEE 754表达形式:(-1)^s X 1.f X 2^(e-127),

s = 0(符号位)

1.f = 1.0011..00(尾数)

e-127 =4,e=131=1000 0011 (阶码)

符号:正数为0

十六进制:41980000H

0

1

0

0

0

0

0

1

1

0

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

-1/8:

二进制表示:-0.001

IEEE 754表达形式:(-1)^s X 1.f X 2^(e-127),

s = 1(符号位)

1.f =1. 000..00(尾数)

e-127 =-3,e=124=0111 1100 (阶码)

符号:负数为1

十六进制:BE000000H

1

0

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

258:

二进制表示:+1 0000 0010

IEEE 754表达形式:(-1)^s X 1.f X 2^(e-127),

s = 0(符号位)

1.f = 1.0000 0010..00(尾数)

e-127 =8,e=135=1000 0111 (阶码)

符号:正数为0

十六进制:43810000H

0

1

0

0

0

0

1

1

1

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

利用IEEE 754标准求下列加减法:

1)0.75 + (-65.25)

2)0.75 - (-65.25)

设 X = +0.75, Y =-65.25

[X]2 = +0.1100

机器码表示为:0 0111 1110 1000 ...00

则阶码EX= 0111 1110

[Y]2 =- 1000 001.01

机器码表示为:1 1000 0101 0000 0101 0000...00

则阶码EY= 1000 0101

  1. 对阶后

在进行对阶的时候:EX= 0111 1110 EY= 1000 0101

[EX- EY]补 = 0111 1110 + 0111 1011 (mod 256)= 1111 1001 (mod 256) = (-7)10

所以X的尾数需要右移7位,对阶后X的阶码移码为 1000 0101,故实际阶码也即尾数操作后需要右移的位数为:1000 0101 - 0111 1111 = 0000 0110 = 6。

  1. 尾数加减
  • 相加:-1.00000010 X 2^6 = (-64.50)10
  • 相减: +1.00001000 X2^6 = (66.00)10
  1. 尾数的舍入处理

尾数没有舍入

  1. 阶码溢出判断

两次均没有出现阶码溢出的情况。

所以结果为:

-64.50和66.00

十进制数与IEEE 754 32 位转换实例讲解相关推荐

  1. 十进制点分IP转换为32位二进制IP

    十进制点分IP转换为32位二进制IP #include<iostream> using namespace std; int main() {char ch[33];char s[100] ...

  2. IEEE 754 单精度浮点数转换

    浮点型数据通讯的时候,需要将浮点数转成对应的四字节内存数据,可以通过该网址工具验证. IEEE 754 单精度浮点数转换 http://www.styb.cn/cms/ieee_754.php 1.I ...

  3. C++ 十进制点分IP转换为32位二进制IP

    题目内容: 编写程序,将十进制点分的IP转换为32位二进制IP地址.程序要能验证输入的十进制点分IP地址的合法性.用户输入的IP不和法时,输出"data error". 请使用模块 ...

  4. 十进制点分IP转换为32位二进制IP(C++)

    题目详情 编写程序,将十进制点分的IP转换为32位二进制IP地址.程序要能验证输入的十进制点分IP地址的合法性.用户输入的IP不和法时,输出"data error". 请使用模块化 ...

  5. PowerPC 32位汇编入门讲解

    第一部分 PowerPC 精简指令集计算机(RISC)简介 PowerPC 体系结构是一种精减指令集计算机(ReducedInstruction Set Computer,RISC)体系结构,定义了 ...

  6. 使用链栈来对十进制数进行任意进制的转换

    使用辗转相除法,通过链栈来实现一个十进制数字对任意进制的一个转换,提前声明,这里不包括一进制和零进制的转换. #include"stdio.h" #include<stdli ...

  7. 如何把单精度二进制数转换成十进制数?

    如何把单精度二进制数转换成十进制数? 单精度二进制数32位,符号1位,指数8位,尾数23位 步骤: 1.如果最高位为1,则为复数,否则为正数. 2.接下来8位为指数,减去二进制01111111(十进制 ...

  8. 8位十六进制转换32位十六进制_网络中的数制系统--二进制十六进制与十进制之间的相互转换...

    网络中计算机的32位IPv4地址以二进制显示,也会以点分十进制显示.而IPv6的地址是128位,是由数字和A-F组成的十六进制系统.因此,了解并且学会在其三者之间相互转换是非常重要的,让我们能够更好的 ...

  9. C语言笔记:进制转换与32位二进制IP地址转换十进制问题

    问题描述: 假设需要编写一个程序,实现32位二进制IP地址(32个字符长的1和0)转换为点分十进制格式并输出.IP地址的点分十进制格式通过将32位从低位到高位(右到左)一次分组八位,总共分4次,任何8 ...

最新文章

  1. Google创始人公开信:AI暖春和黑暗面
  2. java预编译啥意思_java预编译 java jdbc 预编译语句和普通语句的区别
  3. git 基础教程总结
  4. plt title设置在下方_Python数据分析:可视化图表注释设置
  5. 【STL】string的增删改查
  6. qq动态页面变方格_微信更新“分组显示、群管理”等功能,网友:都是QQ玩剩的姿势...
  7. 条码的应用在管理上具有便捷的特点
  8. 大数据分析对企业运营的价值体现
  9. CephOpenstack结合说明操作
  10. iOS-----用LLDB调试,让移动开发更简单(二)
  11. windows 常用自由、开源、免费软件(不断更新)
  12. cass转换jpg_【转】南方CASS作原有地形图数字化--对扫描栅格图像进行校正及矢量化...
  13. 数据可视化案例(六)——智慧医院数据可视化
  14. 学计算机拼音不好怎么办,孩子拼音基础差怎么办?告诉你学拼音技巧!
  15. 红帽linux默认用户名,RedHat Linux实现root身份的Telnet登录
  16. 数据库服务器使用的RAID存储架构初步介绍
  17. 关于共享单车乱摆放问题的调研报告
  18. qt4 鼠标卡顿问题QBasicAtomicInt死锁导致的
  19. mysql 1093 1142
  20. 蕴含连接词的真值表为什么这样定义?

热门文章

  1. 年龄论文阅读——Deep Label Distribution Learning With Label Ambiguity
  2. 利用STM32的定时器中断功能编写线阵CCD(ILX554B)的驱动时序
  3. 致,迷失在黑暗中的曾经。
  4. 实现一个函数,可统计任一整数中某个位数出现的次数
  5. width:100%和width:inherit (实用,赞)
  6. 微信公众平台 - 微信卡券 - 创建会员卡接口值得注意的地方
  7. 易基因:DNA甲基化研究的3大前期探索性实验思路|干货系列
  8. 去掉v4l2mpeg4dec插件的mpeg4解码能力
  9. stETH脱锚?虚惊一场还是又一场加密危机!
  10. 百度对外开放Firefox版百度搜霸源码