《编码——隐匿在计算机软硬件背后的语言》精炼——第13-14章(二进制减法器——1位存储器)

“成功不是最终的,失败不是致命的,勇气才是最关键的。” - 温斯顿·丘吉尔

文章目录

  • 如何实现减法
    • 计算机进行减法运算的逻辑
      • 借位的代替机制
        • 二进制下的替代机制
    • 减法的电路实现
  • 反馈与触发器
    • 电铃
    • 触发器
      • R-S触发器
    • 电平触发的D型触发器

如何实现减法

计算机进行减法运算的逻辑

正常的减法竖式运算中,常常需要进行借位。借位是一种很麻烦的机制,我们要用一些技巧来避过借位产生同样的效果。

借位的代替机制

在十进制中,如果我们计算A-B,我们可以用如下式子来避过借位:

(999-B)+A+1-1000

我们举一个例子来介绍:

  1. 要计算111-108的话,先用999-108=891
  2. 891+111=1002
  3. 1002+1=1003
  4. 1003-1000=3

可以看到,结果是对的,而且没有用到借位机制。
当被减数小于减数时,我们进行一些小小的改变:

  1. 计算108-111的话,先用999-111=888
  2. 888+108=996

注意,到这一步我们会发现996+1-1000是个负数,反正都是负数,所以这时候我们直接用999减这个数,然后取相反数。

-(999-996)=-3

二进制下的替代机制

在二进制下,999要换成全1的最大数,例如:

  • 计算11011001-10001111时,999就替换成11111111,而1000则替换成100000000.

举一个二进制进行竖式运算的例子:

  1. 计算11111101-10110000
    在这里插入图片描述
  2. 先计算11111111-减数,不难看出,其结果就是对减数取反
    在这里插入图片描述
  3. 用第2步的结果加上被减数
    在这里插入图片描述
  4. 第三步结果+1
    在这里插入图片描述
  5. 减去100000000
    在这里插入图片描述

减法的电路实现

我们的目标是要在加法器基础上同时实现加法和减法。用一个开关来决定进行加法或减法运算。

  • 当进行减法运算时,我们需要对第二个输入求补码,也就是对每一位取反,但同时还要保证进行加法运算时第二个输入不变。我们用异或门(XOR)做到这一点。电路图如下:
    在这里插入图片描述
    回忆下XOR的输出表:
    请添加图片描述
    当取反符号为1时,就能起到取补码作用。上图的整个结构用一个符号表示:
    在这里插入图片描述
    解决了这个问题,接下来就可以看整体部分了:
    在这里插入图片描述
    其中SUB符号指的是上文中增加的那个指明是否是减法的开关所传递的电信号,当做减法运算时,信号为1。
  1. 最右边的SUB信号是为了执行+1的运算,作为加数直接加到结果上。
  2. 左下角的SUB运算保证进行减法运算且CO为0时,上下溢指示灯亮起。
    考虑这样一个事实:如果被减数大于减数时,由于没有进行-1000的运算,因此CO一定为1,所以CO为1说明减法运算结果为正数。当CO为0时,结果为负数,发生下溢,指示灯亮起。

注意,这个器件的最后输出结果并不能表示负数,如果下溢指示灯亮起,则手动将结果加上负号即可。

反馈与触发器

电铃

思考如下电路:
在这里插入图片描述

  1. 左边开关未关闭时,电路中无电流通过
  2. 关闭左边开关,电磁铁产生磁力,将上方铁片吸下来,电路断开,铁片弹回,电路再连通,铁片再被吸下来,循环往复。

这套电路使上方铁片快速上下运动,这就是蜂鸣器或电铃的原理。符号如图所示:
在这里插入图片描述
这种电路称为振荡器,振荡器每隔一段相同时间就能改变输出,因此可以进行计时,也称为时钟。
时钟一个循环所占用的时间成为周期,周期的倒数称为频率。

触发器

R-S触发器

看下面的电路:
在这里插入图片描述
再分析这个电路前,先回忆一下或非门的输出:
在这里插入图片描述
接下来请跟好,这个思路很重要:

  1. 先闭合上面的开关,左上角异或门输入变为0、1,输出变为0;右边异或门输入为0、0,输出变为1,灯泡亮起;输出接到左边异或门,,左边变为1、1,输出不变。
    在这里插入图片描述
  2. 断开上面的开关,左边门输出不变,灯泡依然发光。
    在这里插入图片描述
  3. 闭合下面的开关,右边或非门输出变为0,左边的门输入变为0、0,输出变为1。断开下面的开关,返回最开始的状态。
    在这里插入图片描述
    在这里插入图片描述

总结:

  • 关闭上面的开关后再断开,灯泡亮起并保持该状态。
  • 关闭下面的开关后再断开,电路回到初始状态。

上面的开关用来置位,将这个电路的输出置为1并不改变;下面的开关用来复位,将这个电路变为初始状态。
这个电路可以用来“记住”一个位,如果有很多个这种电路,就可以用来记录信息。能够“记住”某些信息的电路就称为触发器。
上图所示的电路可以画成另一个形式,其中新增了一个输出¬Q(形式比较像就用这个符号表示了),上图的灯泡处输出对应该图中的Q:
请添加图片描述
这个电路称为R-S触发器,是最简单的一种触发器。S输入用于置位,R输入用于复位。这个电路的真值表如图所示:
在这里插入图片描述
R-S触发器的简化符号如图所示:
在这里插入图片描述

电平触发的D型触发器

我们需要一个保存某一特定点上的信号,为此,我们必须保证在这个时间点后电路不随输入端的变化而变化。
构思一下这个电路的抽象逻辑,该电路由一个数据端和一个保持位,当保持位置1时,电路保存数据端的输入;反之置0时,电路输出固定。由此可以写出该电路的真值表:
在这里插入图片描述
下图是在R-S基础上构造的能达到目的的电路,通过与门,置0的保持位能阻碍两个输入到达电路。
在这里插入图片描述
接下来,回想R-S触发器的真值表。R输入端和S输入端至多有一个可以置为1,而且输入全0的情况可以通过保持位维持。因此可以想到下图的电路。
在这里插入图片描述

这个电路称为电平触发的D型锁存器(1位存储器)。当保持位是一个特定电平(本图中为1)时,触发器才保存信息。保持位一般被称为时钟,它只是什么时候保存数据。
在这里插入图片描述
请添加图片描述
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!如果觉得好的话,可以关注一下,我会在将来带来更多更全面的知识讲解!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

霍兰德人格分析雷达图

雷达图 Radar Chart 雷达图是多特性直观展示的重要方式 问题分析 霍兰德认为:人格兴趣与职业之间应有一种内在的对应关系 人格分类:研究型、艺术型、社会型、企业型、传统型、现实性 职业:工程师、实验员、艺术家、推销员、记事员、社会工…

1992-2022年31省人均gdp/各省人均地区生产总值

1992-2022年31省人均gdp/各省人均地区生产总值 1、时间:1992-2022年 2、来源:国家统计J、各省NJ 3、范围:包括31省 4、缺失情况说明:无缺失 5、指标包括:各省人均GDP/省人均地区生产总值 6、指标解释&#xff1a…

五一劳动节前 特辑 ,路上那些车不能碰 你赔不起系列

相信明天大家4月29日都上了高速,都奔赴自己今年第一个想去的地方,那么上了高速,见的车辆就多了,哪些车辆我们要明白,尽量不要去碰,或者看见进行 技术性躲避,因为碰一下,半套房没了&a…

Vue3超详细的ref()用法,看这一篇就够了

ref()接受一个内部值,返回一个响应式的、可更改的 ref 对象,此对象只有一个指向其内部值的属性 .value。 ref() 将传入参数的值包装为一个带 .value 属性的 ref 对象。 1、ref 对象是可更改的,即可以为 .value 赋予新的值 举例: c…

【chatgpt】学习开源项目chatgpt-web,搭建自己的chatgpt服务,功能非常丰富有打字效果

目录 前言1,开源的chatgpt项目2,项目可以直接使用docker-compose跑起来3,关于打字模式SSE, octet-stream (打字特效)4,关于内容存储5,总结 前言 本文的原文连接是: https://blog.csd…

线性结构的存储类型

线性结构的存储类型 顺序标:顺序标就是数组,也成为向量vector、高维向量及称为张量即tensor 链表:单链表、双链表、循环链表 线性表概念 表目、文件、索引、表的长度、空表 线性表由节点表和关系表组成二元组; 节点集由有限的…

Hadoop 1:Apache Hadoop、HDFS

Hadoop核心组件 Hadoop HDFS(分布式文件存储系统):解决海量数据存储 Hadoop YARN(集群资源管理和任务调度框架):解决资源任务调度 Hadoop MapReduce(分布式计算框架):解决…

全景丨0基础学习VR全景制作,平台篇第13章:热点功能-总览介绍

全景丨0基础学习VR全景制作,平台篇第13章:热点功能-总览介绍 大家好,欢迎观看蛙色VR官方——后台使用系列课程! 一、热点功能概览 热点,指在全景作品中添加各种类型图标的按钮,引导用户通过按钮产生更多的…

关于电信设备进网许可制度若干改革举措的通告

Q:3月1日后,不再实行进网许可管理的11种电信设备是否还需要继续申请和使用标志? A:3月1日起,对不再实行进网许可管理的11种电信设备停止核发进网许可标志,已申请的标志可在证书有效期内继续使用。 Q&#…

Linux shell编程 条件语句if case

条件测试 test命令 测试表达式是否成立,若成立返回0,否则返回其他数值 格式1: test 条件表达式 格式2: [ 条件表达式 ]文件测试 [ 操作符 文件或者目录 ][ -e 1.txt ]#查看1.txt是否存在,存在返回0 echo $? #查看是上一步命令执行结果 0成…

mysql语句高级用法使用记录和sql_mode=only_full_group_by错误解决

最近工作时用到的几种用法记录一下 sql_modeonly_full_group_by 报错 sql出错示例如下 column ‘qnaq.ta.issue_org_code’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_modeonly_full_group_by 原因分析:…

【Java笔试强训 15】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥查找输入…

Educoder/头歌JAVA——Java Web:基于JSP的网上商城

目录 一、商品列表 本关任务 具体要求 结果输出 实现代码 二、商品详情 本关任务 JDBC查询方法封装 商品相关信息介绍 具体要求 结果输出 实现代码 三、商品搜索 编程要求 测试说明 实现代码 四、购物车列表 本关任务 JDBC查询方法封装 购物车相关信息介绍…

WizardKM:Empowering Large Language Models to Follow Complex Instructions

WizardKM:Empowering Large Language Models to Follow Complex Instructions Introduction参考 Introduction 作者表明当前nlp社区的指令数据比较单一,大部分都是总结、翻译的任务,但是在真实场景中,人们有各式各样的需求,这限制…

程序员阿里三面无理由挂了,被HR一句话噎死,网友:这可是阿里啊

进入互联网大厂一般都是“过五关斩六将”,难度堪比西天取经,但当你真正面对这些大厂的面试时,有时候又会被其中的神操作弄的很是蒙圈。 近日,某位程序员发帖称,自己去阿里面试,三面都过了,却被…

CH32F203RCT6 pin2pin兼容STM32F103RCT6

32位大容量通用型Cortex-M3单片机 CH32F203是基于Cortex-M3内核设计的工业级大容量通用微控制器,此系列主频高达144MHz,独立了GPIO电压(与系统供电分离)。资源同比增加了随机数单元,4组运放比较器;提高串口…

Python进阶项目--只因博客(bootstrap+flask+mysql)

前言 1.全民制作人们大家好,我是练习时长两年半的个人练习生只因坤坤, 喜欢唱,跳,rap,篮球,music...... 在今后的节目中,我还准备了很多我自己作词、作曲、编舞的原创作品, 期待的话…

Docker compose 制作 LNMP 镜像

目录 第一章.Nginx镜像 1.1安装环境部署 1.2.nginx镜像容器的配置 第二章.php镜像的安装部署 2.1.文件配置 第三章.mysql镜像的安装部署 3.1.文件配置 第四章.配置网页 4.1.进入容器mysql 4.2.浏览器访问: 第一章.Nginx镜像 1.1安装环境部署 systemctl s…

亚科转债,鹿山转债上市价格预测

亚科转债 基本信息 转债名称:亚科转债,评级:AA,发行规模:11.59亿元。 正股名称:亚太科技,今日收盘价:5.58元,转股价格:6.46元。 当前转股价值 转债面值 / 转…

新来一00后,给我卷崩溃了..

2022年已经结束结束了,最近内卷严重,各种跳槽裁员,相信很多小伙伴也在准备今年的金三银四的面试计划。 在此展示一套学习笔记 / 面试手册,年后跳槽的朋友可以好好刷一刷,还是挺有必要的,它几乎涵盖了所有的…