计算机科学速成课【学习笔记】(3)——布尔逻辑和逻辑门

        

本集课程的B站链接

3. 布尔逻辑 和 逻辑门-Boolean Logic & Logic Gates_哔哩哔哩_bilibili3. 布尔逻辑 和 逻辑门-Boolean Logic & Logic Gates是【计算机科学速成课】[40集全/精校] - Crash Course Computer Science的第3集视频,该合集共计40集,视频收藏或关注UP主,及时了解更多相关视频内容。icon-default.png?t=N7T8https://www.bilibili.com/video/BV1EW411u7th?p=3&vd_source=efc1c9272504933e74aad03c1db8271e

目录

1. 背景 

2. 非门-NOT

3. 与门-AND 

4. 或门-OR 

5. 异或门-XOR


1. 背景 

        在计算机的发展历程中,计数进制一直在发生改变。在机械计算机时期(如Leibniz的步进计算机),采用齿轮数为10的齿轮来代表十进制;到后来的电子计算机时期(晶体管计算机),再想使用十进制就有点不太容易了,因为想使用通过晶体管的电流大小来表达10进制实在是太容易被干扰了!状态越多,就会越难以区分信号,假如设备要没电了或者突然受到了什么干扰,都会使最后的输出具有不确定性,科学家们尝试过五进制、三进制,后来才最终选择了二进制。

        二进制只有“真”或“假”两个值,也可以表示成“1”或“0”。当电路闭合,电流流过的时候,表示“真”;电路断开,没有电流流过的时候表示“假”,这样的方式很难受到外界的干扰,可以让我们的计算机工作的更加稳定!

        此外,使用二进制的另外一个原因是,有一整套的数学计算的方法,来专门处理“真”或“假”,那就是布尔代数。它是以19世纪的英国数学家 George Boole 的名字来命名的。

        Boole 一直致力于用一种类似常规代数的计算方法,来处理亚里士多德哲学中的逻辑问题。对比于代数中的加减乘除,布尔代数也有三个基本计算方式,那就是“与”AND,“或”OR,“非”NOT。

        在了解三种基本门电路之前,我们先大致了解一下晶体管是怎么工作的。晶体管有三个引脚,分别是基极(B-base)、集电极(C-collector)、发射极(E-emitter)。当电流从基极流向发射极时,三极管导通,以便更大的电流可以从集电极流向发射极(有种抛砖引玉的赶脚)。把三极管比作为一个水龙头的话,就是将开关(B)打开,水流就会从水管流出(C → E)。打开这个水龙头的代价大约是0.7V的电压。

        下面让我们分别来了解一下,并用晶体管制作出这三种基本门电路:

2. 非门-NOT

        非门为单输入单输出逻辑运算,是将输入的布尔值进行取反操作,输入与输出的对应表如下:

输入输出
TrueFalse
FalseTrue

        假如将晶体管的集电极连在高电平上,把发射极接地,那么一个非门就做好了!这个非门的输入是基极,输出是集电极。假如输入为0(即基极电压不足以使晶体管导通),那么集电极的电压就为高电平电压,即输出为1;假如输入为1(基极电压使晶体管道通),那么集电极相当于直接连到了地上,为低电压,即输出为0。

            

3. 与门-AND 

        与门需要两个输入,只有当着两个输入同时为真的时候,输出才为真,只要任意一个输入为假,则输出就为假。

Input 1Input 2Output
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

        制造与门电路,需要将两个晶体管串联起来。这样,用两个晶体管的控制电路作为输入,就必须两个输入端都接通,输出电路才有电流流过。

4. 或门-OR 

        或门同样需要两个输入,并且只要任意一个输入为“真”,则输出就为真;只有当两个输入都为“假”的时候,结果为“假”。

Input 1Input 2Output
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

         有了这3种基本门电路,我们可以开始构建更复杂一点的逻辑电路了

5. 异或门-XOR

         若两个输入相异,则输出为真;若两个输入的电平相同,则输出为假。即如果两个输入不同,则异或门输出真。鱼和熊掌不可兼得也。

Input 1Input 2Output
TrueTrueFalse
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

        利用晶体管来制造“异或”门电路就相当复杂了,还好我们可以用抽象出来的工具“与”、“或”、“非”门来组装它:

        

        从现在开始,我们终于可以用电信号来表示我们的数据(真、假)了!

        本集内容完毕,下集再见!

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

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

相关文章

当需要视频监控技术升级时,应该如何操作呢?

在当今社会,信息技术的飞速发展为我们提供了前所未有的安全和管理工具,其中视频监控系统无疑是其中一项引人注目的成果。 视频监控系统不仅提高了安全性和生产效率,同时也为社会的可持续发展提供了有力支持。 客户案例 工业生产管理优化 广…

将dumpbin从Visual Studio中抠出来,并使用dumpbin查看exe和dll库的依赖关系

目录 1、初步说明 2、在开发的机器上使用dumpbin工具查看dll库的依赖关系 3、将dumpbin.exe从Visual Studio中抠出来 3.1、找到dumpbin.exe文件及其依赖的dll文件 3.2、在cmd中运行dumpbin,提示找不到link.exe文件 3.3、再次运行dumpbin.exe提示找不到mspdb10…

了解DC电源模块的基本参数及选择方法

BOSHIDA 了解DC电源模块的基本参数及选择方法 DC电源模块是一种用来提供稳定直流电源的设备,常被应用在电子产品测试、实验室设备等领域。了解DC电源模块的基本参数和选择方法有助于正确选择和使用合适的模块。 1. 输出电压范围:DC电源模块通常有固定的…

mybatisplus快速入门-个人理解版

mybatisplus快速入门 1.快速入门1.1准备开发环境-idea2019.2.1版第一步:新建工程第二步:导入依赖 1.2创建数据库和表创建库表添加数据 1.3编写代码进行测试第一步:配置application.yml第二步:添加实体类第三步:添加map…

【算法】链表-20240109

这里写目录标题 一、141. 环形链表二、876. 链表的中间结点三、面试题 02.01. 移除重复节点 一、141. 环形链表 简单 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中…

Excel如何插入行?4个简单方法轻松完成!

“我在使用Excel表格工作时,需要插入一些行来填写数据。但是我不知道应该如何操作,有没有朋友可以支支招呀?” Excel是办公室工作中不可或缺的工具,它强大的数据处理能力使得工作变得高效。因此很多用户在使用电脑时或许都会用到E…

vue倒计时60秒改变按钮状态效果demo(整理)

你可以使用Vue的计时器和绑定状态的方法来实现这个功能。 首先&#xff0c;在data中添加一个计时器countdown&#xff0c;初始值为0。 data() {return {countdown: 0} }<template><div><button click"startCountdown" :disabled"countdown > …

基于Jackson封装的JSON、Properties、XML、YAML 相互转换的通用方法

文章目录 一、概述二、思路三、实现四、测试 一、概述 我们在 yaml转换成JSON、MAP、Properties 通过引入 实现了JSON、Properties、XML、YAML文件的相互转换&#xff0c;具体封装的类、方法如下&#xff1a; 上面的实现&#xff0c;定义了多个类、多个方法&#xff0c;使用…

FineBI实战项目一(2):案例架构说明及数据准备

1 系统架构 基于MySQL搭建数据仓库基于Kettle进行数据处理帆软FineBI基于MySQL搭建的数据仓库进行数据分析 2 数据流程图 通过Kettle将MySQL业务系统数据库中&#xff0c;将数据抽取出来&#xff0c;然后装载到MySQL数据仓库中。编写SQL脚本&#xff0c;对MySQL数据仓库中的数…

Qt之有趣的数字钟

一.效果 基于网络代码修改,支持时、分、秒;支持滑动、翻页和旋转。 二.实现 #include <QtCore> #include <QPainter> #include <QAction> #include <QWidget> #include <QMainWindow> #include <QTimer> #include <QKeyEvent> #…

MySQL性能调优---BKA

1.BKA原理介绍 MySQL 5.6版本开始增加了提高表join性能的Batched Key Access (BKA)算法。BKA是对于多表join语句&#xff0c;当MySQL使用索引访问第二个join表的时候&#xff0c;使用一个join buffer来收集第一个操作对象生成的相关列值。BKA构建好key后&#xff0c;批量传给引…

HTML5网站小游戏源码系统:各种各样小游戏集合,你想要的这里都有+完整的安装代码包以及搭建教程

现如今&#xff0c;科技的不断发展&#xff0c;HTML5技术逐渐成为网页游戏开发的主流。为了满足广大游戏爱好者的需求&#xff0c;罗峰给大家推荐一款基于HTML5的网站小游戏源码系统。这款系统集成了众多经典小游戏&#xff0c;涵盖了各种类型&#xff0c;无论您是寻找休闲益智…

0基础学习VR全景平台篇第136篇:720VR全景,认识无人机

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; 无人驾驶飞行器&#xff0c;简称“无人机”&#xff0c;英文缩写为“UAV”。是利用无线电控制设备和自备程序控制操纵的不载人飞机。 &#xff08;一&#xff09;无人机介绍 较…

Linux 网络层收发包流程及 Netfilter 框架浅析

1. 前言 本文主要对 Linux 系统内核协议栈中网络层接收&#xff0c;发送以及转发数据包的流程进行简要介绍&#xff0c;同时对 Netfilter 数据包过滤框架的基本原理以及使用方式进行简单阐述。 内容如有理解错误而导致说明错误的地方&#xff0c;还请指正。如存在引用而没有添…

Shopee买家通系统助力虾皮买手号轻松获取

Shopee买家通系统可以进行虾皮买手号的全自动注册。这款先进的软件目前覆盖了菲律宾、泰国、马来西亚、越南、巴西、印度尼西亚等多个国家&#xff0c;为用户提供了便捷、高效的注册途径。 想要注册虾皮买家号号&#xff0c;首先需要准备一个支持接收短信的手机号。因为虾皮买家…

MATLAB读取图片并转换为二进制数据格式

文章目录 前言一、MATLAB 文件读取方法1、文本文件读取2、二进制文件读取3、 图像文件读取4、其他文件读取 二、常用的图像处理标准图片链接三、MATLAB读取图片并转换为二进制数据格式1、matlab 源码2、运行结果 前言 本文记录使用 MATLAB 读取图片并转换为二进制数据格式的方…

React入门 - 04(从编写一个简单的 TodoList 说起)

继上一节我们已经对 React组件和 ”JSX语法“有了大概的了解&#xff0c;这一节我们继续在 react-demo这个工程里编写代码。这一节我们来简单实现一个 TodoList来更加了解编写组件的一些细节。 1、在编辑器中打开 react-demo这个工程 2、打开 index.js文件&#xff0c;将组件 …

Spark---RDD(Key-Value类型转换算子)

文章目录 1.RDD Key-Value类型1.1 partitionBy1.2 reduceByKey1.3 groupByKeyreduceByKey和groupByKey的区别分区间和分区内 1.4 aggregateByKey获取相同key的value的平均值 1.5 foldByKey1.6 combineByKey1.7 sortByKey1.8 join1.9 leftOuterJoin1.10 cogroup 1.RDD Key-Value…

鸿蒙南向开发—PWM背光(OpenHarmony技术)

背光驱动模型也是基于HDF框架开发的&#xff0c;整个框架如下&#xff1a; 现在以RK3568为例&#xff0c;来看看PWM背光整个驱动&#xff0c;这里使用的是PWM占空比控制的背光&#xff0c;默认基于hdf的pwm驱动已经OK&#xff01; 需要注意的是&#xff1a;这里是基于HDF实现的…

安卓Android Studioy读写NXP ICODE2 15693标签源码

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?spma1z10.5-c-s.w4002-21818769070.11.4391789eCLwm3t&id615391857885 <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xm…