《计算机组成原理》----2.3 二进制运算

本节书摘来自华章出版社《计算机组成原理》一书中的第2章,第2.3节, 作 者 Computer Organization and Architecture: Themes and Variations[英]艾伦·克莱门茨(Alan Clements) 著,沈 立 王苏峰 肖晓强 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3 二进制运算

本节将介绍基本的二进制整数算术运算(加法、减法、乘法和除法)。二进制算术运算的规则与十进制基本相同;唯一的区别在于,十进制算术运算以10为基数,每位有10个数字,而二进制运算以2为基数,每位只有2个数字。下面列出了二进制加法、减法和乘法运算的规则,比起对应的十进制运算简单了许多。三个一位二进制数加法的规则也列在了下面,这有助于读者理解进位是如何处理的。


95bfb3ea95be9d239fd89d69847ad0fe6807841c

上面的规则描述了两个一位二进制数进行加法、减法和乘法运算时的情形。两个位相加可能产生进位或借位,就像十进制算术运算中那样(例如4+8=2,进位为1)。

真实计算机处理8位、16位、32位或64位的数字,一个字中的所有位都必须参与算术运算。当两个二进制字相加时,一个加数中所有的位都将与另一个加数中对应的位相加,从最低位开始,每次处理一位。加法产生的进位应参与其左边一列中两位的加法。请考虑下面4个8位二进制数相加的例子。请注意,图中加阴影的表示进位(值为1)。


d03b47de1f0908087c5829cd4f9bb596325c8ed3

当两个二进制数相减时,一定要记得0–1的差为1,同时会从其左侧借一位。请考虑下面二进制减法的例子(加阴影的表示借位)。请注意例5是用小数减去大数,就像传统的算术运算一样。但我们很快就会看到,计算机并没有按照这种方式工作。


6cdb28c803de5552f589ee6bd9c99eae5f760143

十进制乘法则要难一些——我们必须从1×1=1开始学习九九表,直到9×9=81。二进制乘法仅需要一个简单乘法表,记录了两个位相乘得到一个位的积。
0×0=0
0×1=0
1×0=0
1×1=1
下面的例子描述了011010012(乘数)与010010012(被乘数)相乘的过程。两个n位字相乘将产生一个2n位的积。乘法运算从被乘数的最低位开始,测试它的值是0还是1。如果该位为0,则在算式中写下n个0;如果该位为1,则写下乘数(这个值被称作部分积)。接下来继续测试被乘数左边的下一位并执行同样的操作——这个例子是从上一个部分积的下方、左边一位开始写下n个0或n位的乘数(即部分积被左移了1位)。这个过程将一直继续,直到被乘数中的每一位都按顺序被检测过。最后,这n个部分积被加到一起,生成乘数与被乘数的积。


df83445c859193fa2535a673be39e93525f9f6e5

计算机不会像我们这样完成乘法运算。本章将在后面介绍计算机实现乘法的一些方法。


a483efa3d8a5a486b98ccc56344718b7572cdf46


8eb173b92f72497b3fefc7d8b74a7739834d6ded

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JTable常见用法细则

JTable是Swing编程中很常用的控件,这里总结了一些常用方法以备查阅.欢迎补充,转载请注明作者与出处.一.创建表格控件的各种方式:1) 调用无参构造函数. JTable table new JTable();2) 以表头和表数据创建表格. Object[][] cellData {{"row1-col1", "row1-col…

Android之通过ActivityLifecycleCallbacks判断程序是否运行在后台

1、问题 判断程序是否运行在后台运行 2、解决办法 我们可以使用ActivityLifecycleCallbacks,对于ActivityLifecycleCallbacks,看我的这篇博客介绍() Android之ActivityLifecycleCallbacks的得到当前的activity的状态 (http://blog.csdn.net/u01106870…

下拉刷新:继承listView控件

1、首先初始化的时候给控件监听OnScrollListener,其中onScroll的参数里得到第一个显示的条目,当第一个条目为0的时候就可以执行下啦刷新了。第二覆写的方法是 onScrollStateChanged就是滑动状态的监听,3种状态都是常量:快速滑动&a…

软件项目组织管理(二、三)项目管理与信息技术环境、项目管理过程组

文章目录系统方法系统管理三维模型组织环境组织的四个框架组织的结构项目生命周期管理评审虚拟团队什么是过程项目管理过程组系统方法 项目管理工作需要采取系统的方法,描述在解决复杂问题时所需的整体性和分析性方法。 系统哲学:将事情作为系统考虑的…

一点杂感 以及 java8 Streams API 与 C# Linq 简要对比分析

写在前面的一点小吐槽、一点杂感学 Haskell 学了一段时间之后,虽说拿他来写东西还是完全不行,但是看别的语言特性时,总是会带着一种“诶,这玩意在哪哪见过”的蜜汁既视感。且不说几乎成为现代编程语言标配的 Lambda 、闭包&#x…

svn之迁移代码技巧

1、问题 之前客户做了很多定制,加起来有10几个,每个项目里面4分代码,需要迁移到高版本里面去。我特么傻逼了看每次svn记录然后一个一个的修改,日了狗一样。 2、解决办法 点击到当前目录 svn showlog 然后 ctrl A 然后点击鼠标右…

《编译与反编译技术》—第1章1.7节C语言程序的编译流程

本节书摘来自华章出版社《编译与反编译技术》一书中的第1章,第1.7节C语言程序的编译流程,作者庞建民,陶红伟,刘晓楠,岳峰,更多章节内容可以访问云栖社区“华章计算机”公众号查看。1.7 C语言程序的编译流程…

Base64

2019独角兽企业重金招聘Python工程师标准>>> Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base64单元&#xff0c…

字符编码总结

字符编码精华总结 文件或字符串乱码相信大家都没少遇到, 今天主要就来搞清楚字符串的编码到底是怎 么一回事. 首先, 我们放把自己置空, 假设现在从来没有字符编码, 刚有一台计算机产生, 让我 们来设计一套方案, 目标是让在计算机屏幕上看到我们平时所书写的字符. 你会怎么 做?…

软件配置管理(六)常用配置软件配置工具指令

文章目录软件配置管理工具的主要功能两种版本控制模型Lock-Modify-UnlockCopy-Modify-MergeSubversionGit软件配置管理工具的主要功能 版本控制变更管理配置审核配置状态统计问题跟踪访问控制和安全控制 两种版本控制模型 Lock-Modify-Unlock “加锁-修改-解锁”模型 对于版…

.NET 6 攻略大全(一)

点击上方蓝字关注我们(本文阅读时间:15分钟)欢迎使用 .NET 6。今天的版本是.NET 团队和社区一年多努力的结果。C# 10 和 F# 6 提供了语言改进,使您的代码更简单、更好、性能大幅提升,我们已经看到微软降低了托管云服务的成本。.NE…

http和https和ssl和tcp/ip之间的关系和区别

1、http解释 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准,HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HT…

Win7下JDK环境变量的设置

JDK并不像Microsoft阵营vs那样智能,安装好后所有的东西都给你配置好了,我们还没需要手动配置很多东西 首先说为什么要配置JDK的环境变量在任何路径下识别java命令和java类 配置分为2个部分,1,java命令路径。2,java加载类 分为3个步…

简单模拟实现简单的当登录延时的效果

①、先建立一个activaty去部署我们的登陆界面 1 package com.example.administrator.actionbardemo;2 3 import android.app.Activity;4 import android.content.Intent;5 import android.os.Bundle;6 import android.view.View;7 import android.widget.Button;8 import andro…

《音乐达人秀:Adobe Audition实战200例》——实例11 录制任意音量音乐

本节书摘来自异步社区《音乐达人秀:Adobe Audition实战200例》一书中的第2章,实例11 ,作者 健逗,更多章节内容可以访问云栖社区“异步社区”公众号查看。 实例11 录制任意音量音乐 这个实例将讲解如何任意控制录音过程中的音量。你…

软件项目组织管理(四)项目集成管理

文章目录什么是集成管理集成管理的主要工作SWOT方法筛选信息技术项目过程项目章程集成变更控制变更控制委员会利益相关者分析什么是集成管理 在项目生命周期中协调所有其他项目管理知识领域所涉及的过程,确保项目所有组成要素在恰当的时间、正确的地方、合适的人物…

我的技术回顾2019不止技术的一年

这篇本想具体说下ABP的商业模式的演进与变化,因为愿意像我这样花费心力去研究他的人不多。写着的时候,就得没必要。真有这种想法的人,也会自己研究,我何必去写呢。2019年初,因为各种原因,加上企业资源的调整…

linux之在当前目录下删除不包含aa的文件

1、问题 1、当前目录下删除不包含aa的文件和文件夹2、解决办法 1、rm -rf ls -al | grep -v "aa"

设计模式(1)--简单工厂模式、策略模式

设计模式(1)--简单工厂模式、策略模式 1. 简单工厂模式 在阎宏博士的《JAVA与模式》一书中开头是这样描述简单工厂模式的:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单…

hql Hibernate.gethibernatetemplate()

1. find(String hql); //普通查询 示例:this.gethibernateTemplate().find("from User"); 2. find(String hql,Object value);//一个查询条件 示例:this.gethibernateTemplate().find("from User u where u.name?","test&quo…