第四章:简单逻辑门

news/2025/2/27 12:50:54/文章来源:https://www.cnblogs.com/TinySnowBlog/p/18740756

简单逻辑门

复习

  1. 第一章:需要一台计算机,在研究其组成的方向上进行努力
  2. 第二章:知道了计算机由输入设备、存储器、运算器和输出设备组成,这个体系目前还在沿用
  3. 第三章:了解了计算机使用二进制(0 和 1)表示所有数据

TL;DR

  • 逻辑门是计算机处理二进制信号的基本单元
  • 三个基础逻辑门:与门(AND)、或门(OR)、非门(NOT)
  • 通过组合这些基本逻辑门,可以实现复杂的计算功能

正文

引言

  在前面我们知道了计算机使用二进制,即 0 和 1 来表示数据。只有表示还不够,数据还需要处理。而处理的最基础单位,就是今天所要学习的逻辑门。

  逻辑门就像是电路中的“决策者”,它们根据输入的 0 和 1,按照特定的规则输出 0 或 1。看起来很抽象,觉得这没什么用,但我们将在后面看到,逻辑门怎样通过特定的连接方式,一步步变成半加器、加法器、算术逻辑单元直至 CPU。

  最基本的三个逻辑门是:与门(and)、或门(or)和非门(not)。

  注意, 与或非三种门,其实并不能直接获得 ,需要用晶体管搭建。但由于晶体管电路太过复杂,超出了本指南范围,为简化说明,本指南 认为与或非三门可以直接获得 。读者若有兴趣可以查看本章最后的补充模块,晶体管属于集成电路内容,如无兴趣略过即可,不影响后续学习。

基本逻辑门

与门(AND)

  与门的特点是:只有当所有输入都为 1 时,输出才为 1。“全票才通过”。

  • 要打开保险箱,需要同时输入正确的密码 使用正确的钥匙
  • 要通过考试,需要理论考试合格 实践考试合格

  真值表:

输入 A 输入 B 输出
0 0 0
0 1 0
1 0 0
1 1 1

或门(OR)

  或门的特点是:只要有任意一个输入为 1,输出就为 1。“一票就通过”。

  • 要开灯,可以按下楼上的开关 楼下的开关
  • 要进入会场,可以使用纸质票 电子票

  真值表:

输入 A 输入 B 输出
0 0 0
0 1 1
1 0 1
1 1 1

非门(NOT)

  非门的特点是:输出与输入相反。

  • 电灯开关:按一下开,再按一下关
  • 自动门:有人靠近时开,没人时关

  真值表:

输入 输出
0 1
1 0

逻辑门的补充

  由基础三门还可构成稍复杂一点的逻辑门:nand(not and 之缩写)、nor(not or 之缩写),分别是与非门、或非门。其结果就是与门、非门的结果取反。

输入 A 输入 B and 输出 nand 输出 or 输出 nor 输出
0 0 0 1 0 1
0 1 0 1 1 0
1 0 0 1 1 0
1 1 1 0 1 0

逻辑门的应用

  这些基本逻辑门可以组合起来完成更复杂的功能,下几章我们将会看到:

  1. 数据选择:使用与门和或门可以构建选择器
  2. 数据比较:使用多个逻辑门可以比较两个数的大小
  3. 数据运算:使用逻辑门的组合可以实现加法器

小结

知识点

  • 逻辑门是处理二进制信号的基本单元
  • 与门(AND):所有输入为 1 时输出 1
  • 或门(OR):任意输入为 1 时输出 1
  • 非门(NOT):输出与输入相反

参考资料

  1. Wikipedia(zh):数字逻辑门
  2. 《编码:隐匿在计算机软硬件背后的语言》第 11 章:逻辑门
  3. 《计算机组成与设计:硬件/软件接口》第 4 章:处理器
  4. Wikipedia(zh):晶体管:现代几乎所有电子设备的基石。
  5. Wikipedia(zh):函数完备性

推荐

  1. Bilibili:MOSFET 快速入门
  2. Bilibili:逻辑门

协议

   本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

封面图

设计师 | 南国微雪

补充

  符号说明:

  • NMOS 高于 阈值电压导通,低于 阈值电压不导通
  • PMOS 则相反
  • Vdd 为供电电压,恒为 1
  • GND/Vss 为接地电压,恒为 0
  • 接入端 A 和 B 为接入电压,可高可低,高于阈值电压为 1,低于阈值电压为 0

   CMOS(互补式金属氧化物半导体)晶体管搭建基础逻辑门的电路图:

  • 非门(not,反相器)

  • 与非门(nand)

  • 与门(可以看出实际上就是 nand + not 两模块构成)

  • 或门(与上同理,由 nor + not 构成)

  在晶体管的层面,最基础的逻辑门其实是 nand 或者 nor,并非 and、or、not 三门。and 在晶体管层面上其实是 nand + not。or 同理,不过也可以用 nand 搭建。not 最简单,和 nand/nor 一样可以直接用晶体管搭出来。not 使用 2 个晶体管,而 nand/nor 使用 4 个。

  nand 和 nor 两门因自身函数完备性,均可构成基础三门。所以一台计算机可以只由 nand 门或 nor 门构成。

本文由博客一文多发平台 OpenWrite 发布!

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

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

相关文章

day02_ip地址和服务器

day02 服务器与机房 上节回顾运维是什么: 简单来说保证服务器的安全稳定的运行今日内容 服务器的基础的知识 ip地址的查看 windows查看IP的命令是 ipconfig关于局域网,NAT的概念公网,局域网的概念,以及路由器帮你做了网络地址的转换运维不象写代码,纯靠动脑,不断的写吗,…

中国国旗Python

import turtle 设置画布大小 turtle.setup(600, 400) 设置画笔速度 turtle.speed(10) 绘制红色背景 turtle.penup() turtle.goto(-300, 200) turtle.pendown() turtle.color("red") turtle.begin_fill() for _ in range(2): turtle.forward(600) turtle.right(90) tu…

Hyacinth:一款覆盖主流框架的反序列化漏洞利用神器

免责声明 本文旨在提供有关特定漏洞或安全风险的详细信息,以帮助安全研究人员、系统管理员和开发人员更好地理解和修复潜在的安全威胁,协助提高网络安全意识并推动技术进步,而非出于任何恶意目的。利用本文提到的漏洞信息或进行相关测试可能会违反法律法规或服务协议。作者不…

QtCreator IDE中向项目添加ui文件并绑定类

在 Qt Creator 中使用 Qt Designer 创建 UI 文件步骤一、添加ui文件到pro中鼠标移动到项目->右键->添加现有文件;找到要添加的xxxx.ui文件;点击打开按钮,完成xxxx.ui的添加。二、在项目pro文件中指定UI_DIR路径指定UI_DIR路径有两个目的:1.编译输出的xxxx_ui.h文件会…

Thinkphp6---workman开发聊天

最近DeepSeek很火,就结合workman开发一个聊天对话功能: 一、安装 think-worker和 think-viewcomposer require topthink/think-worker composer require topthink/think-view版本更新比较快,通过这个安装的 think-worker 是4.0的,但是需要 thinkphp是8.0的 可以安装3.0的:…

Redis复习-网络模型

用户空间和内核空间 任何Linux发行版,其系统内核都是Linux。我们的应用都需要通过Linux内核与硬件交互。 为了避免用户应用导致冲突甚至内核崩溃,用户应用与内核是分离的: 1.进程的寻址空间会划分为两部分:内核空间、用户空间 2.用户空间只能执行受限的命令(Ring3),而且…

2026-02-27 把本地项目添加到新建的git仓库

一:检查本地项目中是否存在git仓库git status 没有,好!进入第二步👇(有?直接git add git commit -m xxx git push,聊天end) 二:初始化仓库git init 三:创建一个远程仓库地址(如有可略) 四:关联远程仓库git remote add origin 远程仓库 五:推送git push一般直接执…

No.21 CSS--弹性盒子模型(flex box)

一、定义弹性盒子是 CSS3 的一种新的布局模式。 CSS3 弹性盒是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。 引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。二、CSS3弹性盒内容…

从零开始的云上建筑师速成班:用ROS架构编辑器搭个服务器小屋

云上建筑师速成秘籍:用阿里云ROS架构编辑器像搭乐高一样玩转服务器!零代码拖拽资源+配置指南,从部署到拆家一条龙服务~前情提要:你的云上建筑师执照 想成为云架构师?不需要考清华MIT,只需要: ✅ 一个阿里云账号(注册地址已备好,请自取) ✅ 完成实名认证(就像进游乐园…

第02章 JDBC的新增修改删除

JDBC编程六步 JDBC编程的步骤是很固定的,通常包含以下六步:第一步:注册驱动作用一:将 JDBC 驱动程序从硬盘上的文件系统中加载到内存中。 作用二:使得 DriverManager 可以通过一个统一的接口来管理该驱动程序的所有连接操作。第二步:获取数据库连接获取java.sql.Connecti…

第01章 JDBC概述

什么是JDBC JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。‍ JDBC原理 早期SUN公司的天才们想编写一套可以连接天下所有数据库的AP…