code用了一定的篇幅写编码以及进制的内容(毕竟书名就叫code),这部分内容我可能兴趣缺缺吧,所以第一篇学习笔记便从加法器写起啦。


目录

  • 目录
  • 用继电器构造简单的逻辑门
    • 一个继电器:
    • 反向器(非)
    • 与门和与非门
    • 或门
    • 异或
  • 二进制半加器
  • 二进制全加器
  • 多位二进制数加法器
    • 工业成品类比
  • 多说几句

用继电器构造简单的逻辑门

相对于抽象的与或非,或者现在电路中的精巧原件,作者用线圈与电磁体构造的门形象的描述了一系列的门。作为学习笔记,应以简而明了为要,所以以下省略了作者的大量篇幅,或许会显得不够详细。

一个继电器:

一个电磁铁是两个电路有了关联,开关闭合,灯泡亮。

反向器(非)

与继电器极为相像,只不过开关闭合,灯泡灭。

与门和与非门

两个继电器右端电路的串联,当且仅当两个开关闭合,灯泡才亮。

抽象为与门如下

信号1代表开关闭合(高电平输入),信号0代表开关断开(低电平输入),与门列表:

AND 0 1
0 0 0
1 0 1

在与门的末尾(即灯泡与输出之间)加一个反向器,得到与非门NAND

或门

如果说与门是两个继电器的“串联”,那么或门则是“并联”

或门符号

或门列表

OR 0 1
0 0 1
1 1 1

在或门的末尾(即灯泡与输出之间)加一个反向器,得到或非门NOR

异或

在数理逻辑里,与、非或者或、非就是一个联结词的完备集了,通过其中任意一组既可以表示出所有的联结词。有了与或非,异或门将直接由它们组成。

异或门

XOR 0 1
0 0 1
1 1 0

二进制半加器

由于神奇的二进制“阳阳易数”,通过以上几个门来实现二进制的非进位加法就可行了。
先列出加和表

+ 0 1
0 0 1
1 1 0

妥妥的一个异或门。
再来个进位表

进位 0 1
0 0 0
1 0 1

就是一个与门。
那么一位数的二进制半加器就大功告成啦!

(学到此处如果你和我一样迫不及待的想动手实践,那么你可以考虑考虑通过mc的红石电路来实现它们)

二进制全加器

加法如果在最低位自然不需要考虑进位,但是如果你想搭建一个多位数的加法器,那么输入端也就必须要有一个进位输入,这就是全加器。
比较容易想到的一个方法就是做两次加法,进位输入和第一次加法的结果进行再一次的加法,就可以得到一个完整的全加器啦。当然,第一次加法的结果包括了进位输出和加和输出,那么第二次加法自然也要处理好这两个事情。

这就组成了一个一位全加器,封装后如下:

多位二进制数加法器

有了二进制全加器,解决了进位问题,那么要构建多位数的加法器也就水到渠成了。
将全加器倒过来,每个全加器的进位输出连着下一位的进位输入,如此“并联”,既可以得到多位数的加法器了,下图构建的是一个八位加法器。

封装后如下

工业成品类比

(没有百度到行波进位加法器,凑合着看吧,大概就是这样的接口了/百度的图/)

多说几句

以上是由比较原始继电器构成的加法器,由于是行波进位,显然效率较低(后一位的加法必须要前一位的结果),书中还提到了一种前置进位电路的加法器,额,俺不会,看了头大,有时间再去了解吧。。。
另外如果没有晶体管,半导体,集成电路的出现,最后的一张图片显然是没有的,构建上述加法器仅仅是为了明白原理,至少面对着最后一个小部件的时候,不会一脸懵逼,知道原理并会使用总是比只知使用不知原理好的。。。

CODE学习笔记一——构建二进制加法器相关推荐

  1. 《VS Code 学习笔记 之 Open Live Server》

    目录 VS Code 学习笔记 Open Live Server 代码分析 VS Code 学习笔记 Open Live Server Open Live Server : 开启 实时服务 代码分析 ...

  2. 学习笔记_使用二进制的方式修改图片

    学习笔记_使用二进制的方式修改图片 1.学习目标 2.学习工具 3.开始操作 3.1 了解图片是怎样用二进制表示的 3.2 开始操作 4.参考文档 1.学习目标 掌握使用二进制的方式修改图片 了解BM ...

  3. alfs学习笔记-自动化构建lfs系统

    一名linux爱好者,记录构建Linux From Scratch的过程 经博客园-骏马金龙前辈介绍,开始接触学习lfs,用博客记录学习笔记,如有写的不恰当的地方,望多多指正. 笔记中只是记录一些问题 ...

  4. 【学习笔记】构建小型金融知识图谱(github项目)

    前言 需要构建农业知识图谱,先来学习一下构建知识图谱的基本流程和套路,熟悉过程方便 科研 后续工作的开展,写下此篇博客作为我的笔记吧~ 参考代码来源:github项目 jm199504/Financi ...

  5. carsim学习笔记4——构建路面

    carsim的道路模型设置这里选择如下图所示: 1.X-Y coordinates of path(道路的x_y坐标) 条件选择如下所示: 这个道路是以x,y点构建的道路模型 这个道路模型求解后,动画 ...

  6. Android学习笔记---29_构建soap协议内容,发送xml数据和调用webservice,手机号码归属地查询器

    29_发送xml数据和调用webservice ---------------------------------------- 1.发送xml数据给web应用   a.可以通过参数的方式:比如:ht ...

  7. Spark MLlib学习笔记:构建一个机器学习工作流

    文章目录 一.任务描述 二.实现步骤 (一)引入包并构建训练数据集 (二)定义工作流阶段 (三)创建工作流,训练出模型 (四)构建测试数据集 (五)利用模型做预测 一.任务描述 查出所有包含" ...

  8. 荔枝派Zero学习笔记--系统构建篇

    荔枝派系统搭建 系统构建 U-Boot移植 获取源码 配置编译 Linux 获取源码 配置编译 rootfs 获取源码 配置编译 制作TF卡启动盘 磁盘分区 系统构建 U-Boot Linux roo ...

  9. ElasticSearch学习笔记-索引构建

    installation 在mac下安装可以直接使用brew来进行: brew install elasticsearch ## 基于界面的Front查询界面 可以安装chrome 浏览器中的elas ...

最新文章

  1. Microsoft Windows 10的LTSC 2019和Version 1809更新简单说明
  2. 2019春第十周作业
  3. MaxCompute 挑战使用SQL进行序列数据处理
  4. 请教 这段代码有问题吗
  5. ntext字段的REPLACE处理示例.sql
  6. axure后台示例_【Axure电商案例】如何设计和真的后台一样给客户看
  7. 笔记本打印机显示服务器脱机,打印机显示脱机状态怎么办 打印机显示脱机状态解决方法【详解】...
  8. 学iOS开发需要什么样的基础?
  9. DPU网络开发SDK——DPDK(二)
  10. http协议相关内容,C/S与B/S,ip报文,TCP,UDP
  11. React中文文档 8. 列表 Key
  12. Python 手把手教你爬取淘宝的笔记本电脑数据
  13. vue3 动态传值给子组件
  14. LinuxShell宝典
  15. MATLAB实现已知DH参数的正运动方程求解
  16. Faster R CNN
  17. Embedding原理到实战
  18. 理想汽车第三季度净亏损同比降近八成,研发投入不及销售费用
  19. 山东科技大学OJ题库 1097 判断三角形的性质
  20. 从农夫过河问题理解顶点覆盖、团和独立集

热门文章

  1. UI控件之ToggleButton(开关按钮)和Switch(开关)
  2. 元宇宙遇到中国年,Wearable Dao“中国红”主题VOX作品征集
  3. FLUENT mesh画网格时候卡在mesh status
  4. linux x11vnc,X11vnc (简体中文)
  5. 怎么使用在线PS对图片换背景 如何快速抠图
  6. AMS1117-3.3V发热原因分析----输出口接上电源
  7. String 类型操作 16进制转10进制
  8. C# String.Format格式化
  9. windows7系统使用心得
  10. 阿里全员标配的指令集鼠标垫,我的粉丝每人包邮送一块!!!