十进制数与IEEE 754 32 位转换实例讲解
这里用了一下《深入理解计算机系统》中的几个习题来具体说明了一下
主要分为以下几个步骤:
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
- 对阶后
在进行对阶的时候: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.00000010 X 2^6 = (-64.50)10
- 相减: +1.00001000 X2^6 = (66.00)10
- 尾数的舍入处理
尾数没有舍入
- 阶码溢出判断
两次均没有出现阶码溢出的情况。
所以结果为:
-64.50和66.00
十进制数与IEEE 754 32 位转换实例讲解相关推荐
- 十进制点分IP转换为32位二进制IP
十进制点分IP转换为32位二进制IP #include<iostream> using namespace std; int main() {char ch[33];char s[100] ...
- IEEE 754 单精度浮点数转换
浮点型数据通讯的时候,需要将浮点数转成对应的四字节内存数据,可以通过该网址工具验证. IEEE 754 单精度浮点数转换 http://www.styb.cn/cms/ieee_754.php 1.I ...
- C++ 十进制点分IP转换为32位二进制IP
题目内容: 编写程序,将十进制点分的IP转换为32位二进制IP地址.程序要能验证输入的十进制点分IP地址的合法性.用户输入的IP不和法时,输出"data error". 请使用模块 ...
- 十进制点分IP转换为32位二进制IP(C++)
题目详情 编写程序,将十进制点分的IP转换为32位二进制IP地址.程序要能验证输入的十进制点分IP地址的合法性.用户输入的IP不和法时,输出"data error". 请使用模块化 ...
- PowerPC 32位汇编入门讲解
第一部分 PowerPC 精简指令集计算机(RISC)简介 PowerPC 体系结构是一种精减指令集计算机(ReducedInstruction Set Computer,RISC)体系结构,定义了 ...
- 使用链栈来对十进制数进行任意进制的转换
使用辗转相除法,通过链栈来实现一个十进制数字对任意进制的一个转换,提前声明,这里不包括一进制和零进制的转换. #include"stdio.h" #include<stdli ...
- 如何把单精度二进制数转换成十进制数?
如何把单精度二进制数转换成十进制数? 单精度二进制数32位,符号1位,指数8位,尾数23位 步骤: 1.如果最高位为1,则为复数,否则为正数. 2.接下来8位为指数,减去二进制01111111(十进制 ...
- 8位十六进制转换32位十六进制_网络中的数制系统--二进制十六进制与十进制之间的相互转换...
网络中计算机的32位IPv4地址以二进制显示,也会以点分十进制显示.而IPv6的地址是128位,是由数字和A-F组成的十六进制系统.因此,了解并且学会在其三者之间相互转换是非常重要的,让我们能够更好的 ...
- C语言笔记:进制转换与32位二进制IP地址转换十进制问题
问题描述: 假设需要编写一个程序,实现32位二进制IP地址(32个字符长的1和0)转换为点分十进制格式并输出.IP地址的点分十进制格式通过将32位从低位到高位(右到左)一次分组八位,总共分4次,任何8 ...
最新文章
- Google创始人公开信:AI暖春和黑暗面
- java预编译啥意思_java预编译 java jdbc 预编译语句和普通语句的区别
- git 基础教程总结
- plt title设置在下方_Python数据分析:可视化图表注释设置
- 【STL】string的增删改查
- qq动态页面变方格_微信更新“分组显示、群管理”等功能,网友:都是QQ玩剩的姿势...
- 条码的应用在管理上具有便捷的特点
- 大数据分析对企业运营的价值体现
- CephOpenstack结合说明操作
- iOS-----用LLDB调试,让移动开发更简单(二)
- windows 常用自由、开源、免费软件(不断更新)
- cass转换jpg_【转】南方CASS作原有地形图数字化--对扫描栅格图像进行校正及矢量化...
- 数据可视化案例(六)——智慧医院数据可视化
- 学计算机拼音不好怎么办,孩子拼音基础差怎么办?告诉你学拼音技巧!
- 红帽linux默认用户名,RedHat Linux实现root身份的Telnet登录
- 数据库服务器使用的RAID存储架构初步介绍
- 关于共享单车乱摆放问题的调研报告
- qt4 鼠标卡顿问题QBasicAtomicInt死锁导致的
- mysql 1093 1142
- 蕴含连接词的真值表为什么这样定义?
热门文章
- 年龄论文阅读——Deep Label Distribution Learning With Label Ambiguity
- 利用STM32的定时器中断功能编写线阵CCD(ILX554B)的驱动时序
- 致,迷失在黑暗中的曾经。
- 实现一个函数,可统计任一整数中某个位数出现的次数
- width:100%和width:inherit (实用,赞)
- 微信公众平台 - 微信卡券 - 创建会员卡接口值得注意的地方
- 易基因:DNA甲基化研究的3大前期探索性实验思路|干货系列
- 去掉v4l2mpeg4dec插件的mpeg4解码能力
- stETH脱锚?虚惊一场还是又一场加密危机!
- 百度对外开放Firefox版百度搜霸源码