第二章 运算方法与运算器(浮点数的加减法,IEEE754标准32/64浮点规格化数)
这一章,主要介绍了好多种计算方法。下面,写一点自己对于有些计算(手写计算过程)的见解。
- 1.原码、反码、补码
原码:相信大家都会写,符号位在前二进制数值在后,凑够位数即可。
反码:原码符号位不变,其他位全部取反。
补码:反码末位加一 / 原码符号位不变,从右往左数第一个1及其右边的各位不变,其余位全部取反
- 2.IEEE754的转换
IEEE754标准32/64浮点规格化数形式:X = (-1)S * 1.M * 2E-127(其中,S-阶符,M-尾数,E-阶码)
32位的规格化浮点数:SEM00000...(即二进制SEM后面补0,写够32位)
以27/64为例:
①化形式:27/64 = + (1.1011)2 * 2-2
②找SEM:S=0,M=1011,E=(125)10=(01111101)2
③写结果:00111110 11011000 00000000 00000000 = (3ED800)16
- 3.变形补码计算加减法
变形补码没什么稀奇,不过是符号位变成两位而已(00为正,11为负),它的价值在于可以作溢出判断(结果00//11表示未溢出,01-上溢(所谓上溢符号位还是0),11-下溢(下溢符号位还是1)),就正常求补码(符号位double),放在一起加和,做溢出判断,最后别忘了把补码再转换回原码作为最终结果。
x+y:
以x=11011, y=00011为例:
①求补:[11011]补=0011011, [00011]补=0000011
②加和:011011 + 000011 = 0011110;符号位00,未溢出,故x+y=11110
x-y:(这里把减法化为加法,即 x-y = x+(-y),另外[-y]补 = [y]补 从右往左数第一个1及其右边的各位不变,其余位全部取反,这次连带符号位也要取反)
以x=11011, y=-11111为例:
①求补:[11011]补=0011011, [-11111]补=1100001,[-y]补=0011111
②加和:[x]补+[-y]补 = 0011011 + 0011111 = 0111010;符号位01,正溢(上溢);故x-y=+111010
- 4.浮点数加减法(我用的是补码计算)
这里面涉及的东西比较多,每一步都需要仔细,错一步结果就错了。
①求补对阶
②尾数求和
③规格化
④舍入处理
⑤溢出判断
⑥写结果
例子后面给
第二章 运算方法与运算器(浮点数的加减法,IEEE754标准32/64浮点规格化数)的更多相关文章
- 十进制浮点数转换成IEEE754标准的32浮点数的二进制格式
参考: http://jimmygod.blog.163.com/blog/static/43511339200792605627411/ http://blog.csdn.net/archersab ...
- 【重学计算机】计组D3章:运算方法与运算器
1. 定点数运算及溢出 定点数加减法:减法化加法,用补码直接相加,忽略进位 溢出:运算结果超出了某种数据类型的表示范围 溢出检测方法:统一思想概括为正正得负或负负得正则溢出,正负或负正不可能溢出 方法 ...
- C#中浮点数依IEEE-754标准转二进制串 (MODBUS 浮点数转换)
因工作需要,把再串口通信中浮点数与字节流的数据转换函数放在这,转发的,谢谢原作者. 今天花了一天的时间搜罗资料,为了解决一个串口编程的进制转化问题.因为串口传送的浮点数据格式与IEEE-754标准(3 ...
- 【知识强化】第二章 数据的表示和运算 2.4 算术逻辑单元ALU
从本节开始我们就进入到本章的最后一节内容了,也就是我们算术逻辑单元的它的实现.这部分呢是数字电路的一些知识,所以呢,如果你没有学过数字电路的话,也不要慌张,我会从基础开始给大家补起.那么在计算机当中, ...
- ASP.NET Core 中文文档 第二章 指南(4.6)Controller 方法与视图
原文:Controller methods and views 作者:Rick Anderson 翻译:谢炀(Kiler) 校对:孟帅洋(书缘) .张仁建(第二年.夏) .许登洋(Seay) .姚阿勇 ...
- C语言程序设计:现代方法(第2版)第二章全部习题答案
前言 本人在通过<C语言程序设计:现代方法(第2版)>自学C语言时,发现国内并没有该书完整的课后习题答案,所以就想把自己在学习过程中所做出的答案分享出来,以供大家参考.这些答案是本人自己解 ...
- Upgrading to Java 8——第二章 Method References(方法引用)
概述 很多java 方法会使用函数式接口作为参数.例如,java.util.Arrays类中的一个sort方法,就接受一个Comparator接口,它就是一个函数式接口,sort方法的签名如下: pu ...
- Testlink1.9.17使用方法(第二章 登录&汉化设置)
第二章 登录&汉化设置 QQ交流群:585499566 1,使用超级账户admin/admin登录. 2,登录后,会提示创建一个新的项目,先不要创建,先进入用户管理,设置成中文显示,也就是汉化 ...
- Java基础知识二次学习-- 第二章 基础语法与递归补充
第二章 基础语法与递归补充 时间:2017年4月24日10:39:18 章节:02章_01节,02章_02节 视频长度:49:21 + 15:45 内容:标识符,关键字与数据类型 心得:由字母,下 ...
随机推荐
- C# 配置文件Xml读写
分析xxx.exe.config文件: <?xml version="1.0" encoding="utf-8"?> <configurati ...
- 缓存日志截取字段上传FTP
#!/bin/bash awk '{print $3,$4,$5,$6,$9,$11,$12,$14,$15,$18}' /usr/local/tcacheserver/var/log/traffic ...
- MySQL 通讯协议
Client/Server 通讯协议用于客户端链接.代理.主备复制等,支持 SSL.压缩,在链接阶段进行认证,在执行命令时可以支持 Prepared Statements 以及 Stored Proc ...
- linux 命令 — xargs
xargs xargs能接收stdin并将其转化为特定命令的命令行参数,构建单行命令的重要工具 command | xargs 指定分隔符 echo "splitXsplitXsplitXs ...
- Python机器学习笔记 使用sklearn做特征工程和数据挖掘
特征处理是特征工程的核心部分,特征工程是数据分析中最耗时间和精力的一部分工作,它不像算法和模型那样式确定的步骤,更多的是工程上的经验和权衡,因此没有统一的方法,但是sklearn提供了较为完整的特征处 ...
- Tomcat:At least one JAR was scanned for TLDs yet contained no TLDs
启动Tomcat的时候,经常见到这样的BUG: 14-Apr-2019 13:53:25.198 信息 [localhost-startStop-1] org.apache.jasper.serv ...
- Mysql的跨表更新
本文介绍mysql多表 update在实践中几种不同的写法. 假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price:另外一张表是ProductPrice表,我们要将Pro ...
- .net 数据类型转换int.Parse()与int.TryParse
int.Parse()是一种类容转换:表示将数字内容的字符串转为int类型. 如果字符串为空,则抛出ArgumentNullException异常: 如果字符串内容不是数字,则抛出FormatExce ...
- 【转载】 IIS服务器防盗链设置
在实际运行的服务器环境中,我们自己网站中的资源一般不希望被外部网站引用,被外部网站引用IIS网站中的资源文件,一是会加重了服务器的负担,二是占用了你自己服务器的外网带宽资源,因此我们希望防止盗链这种情 ...
- 杭电ACM2000--ASCII码排序
ASCII码排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...