热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

2.运算方法和运算器(数据表示、二进制转码、加减运算及溢出处理、移位运算)

2.1数据的表示方法与转换2.1.1数据的表示方法二进制(Binary)八进制(Octal)十进制(D



2.1 数据的表示方法与转换

2.1.1 数据的表示方法

二进制(Binary)

八进制(Octal)

十进制(Decimal)

十六进制(Hex)

2.1.2 十进制转二进制

方法:拼凑法,将十进制数拆分成多个2的n次幂相加,直接看例子:

①求248的二进制数据
248=128+64+32+16+8=(10000000+1000000+100000+10000+1000)B=1111,1000B
②求72的二进制数据
72=64+8=1001000B小数转换:
0.625=0.5+0.25+0.125=(0.1+0.01+0.001)B=0.111B

2.1.3 二进制转八、十六进制 

        每三位转成八进制,每四位转成十六进制,不足三位、四位的拿0来补,尤其注意小数尾部


2.1.4 BCD码

        BCD码(Binary Coded Decimal) 二进制代码表示的十进制数。

举例:

将(115)10用BCD码表示:
0001 0001 0101

运算时:

        当两个1位BCD相加之和小于(1001)B即(9)D时,无需修正;

        相加之和大于9时,需要进行加6修正且向高位进位。


2.2 定点数的表示与加减运算 

2.2.1 机器数的表示

        计算机中表示的带符号的二进制数称为“机器数”。“+”用0表示,“-”用1表示

 机器数三种表示方式:原码、补码和反码。 将带“+”或“-”符号的数称为“真值”。      

整数在机器中的表示(原码)
+1100 ——> 01100
-1100 ——> 11100小数在机器中的表示
+0.1011 ——>0.1011
-0.1011 ——>1.1011

原码转补码:

        若原码为正数:原码、补码一致

        若原码为负数:符号位不变,原码取反加1

①给定X=+1011001,求X的补码。解:X为正数,故[X]补=01011001
②给定Y=-1100101,求Y的补码。解:Y为负数,故[Y]补=100110110的补码为: [+0]补=000……0[-0]补=000……0

2.2.2 补码加减法

        用补码表示的两数进行加法运算,结果仍为补码 ;符号位与数值位一起参与运算。

        [X+Y]补=[X]补+[Y]补 

        [X-Y]补=[X]补+[-Y]补

①给定X=-1010,Y=+0101,求X+Y。解:[X+Y]补=[X]补+[Y]补=10110+00101=11011……-0101……(-5)D
②给定X=-1010,Y=0101,求X-Y。解: [X-Y]补=[X]补+[-Y]补=10110+11011=10001……-1111……(-15)D

        例题:

 2.2.3 加减法运算的溢出处理

        当运算结果超出机器数表示的范围时,称为溢出;负+负,负-正,正+正,正-负 可能产生溢出。

 

         例题:

 补充:这道题数据后面字母H表示十六进制
r1对应的二进制为 1111 1110

2.2.4 定点数的移位运算

符号位保持不变,

左移:某二进制数左移,得到某数的2倍;

右移:某二进制数右移,得到某数的1/2倍。

例题:

以原码为例,设[X]原=00110=+6,[Y]原=10100=-4,求其分别左移和右移后的结果。①X左移1位后01100=+12,右移1位后00011=+3②Y左移1位后11000=-8,右移1位后10010=-2

移出位的缺位补充:

 






推荐阅读
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Principle for Mac(交互式屏幕设计软件)免激活版
    Mac上好用的交互式屏幕设计软件,PrincipleforMac是一款交互式屏幕设计软件,principle mac让您的设计将以原则出现,随时为您注入新的活力。如果您进行更改,再 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了[从头学数学]中第101节关于比例的相关问题的研究和修炼过程。主要内容包括[机器小伟]和[工程师阿伟]一起研究比例的相关问题,并给出了一个求比例的函数scale的实现。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了如何将CIM_DateTime解析为.Net DateTime,并分享了解析过程中可能遇到的问题和解决方法。通过使用DateTime.ParseExact方法和适当的格式字符串,可以成功解析CIM_DateTime字符串。同时还提供了关于WMI和字符串格式的相关信息。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
  • 本文介绍了开关稳压器设计中PCB布局布线的重要性,并提供了相应的准则。开关稳压器作为一种高效的电源,逐渐取代了线性稳压器。开关模式电源的工作原理是通过一定的开启时间和关闭时间来实现电压转换。开关频率并不是影响系统的最大因素,而开关转换的速度才是关键。在系统噪声方面,开关频率或其谐波可能会对系统产生影响。严格遵守PCB布局布线的准则,可以将开关模式电源的相关问题降到最小。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
author-avatar
捕鱼达人2602881157
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有