当前位置: 首页 > news >正文

使用晶体管做布尔逻辑和逻辑门

目录

二进制,三进制,五进制

true,false表示0,1

早期计算机采用进制

布尔逻辑

三个基本操作:NOT,AND,OR

基础“真值表”

NOT 如何实现?

AND如何实现?

OR如何实现?

图标表示

XOR亦或

原文视频


二进制,三进制,五进制

true,false表示0,1

电路闭合,电流流过,代表“true真”;电路断开,无电流流过,代表false。

二进制可以写成0和1,而不是true和false

早期计算机采用进制

晶体管不仅可以控制电流开关,还可以控制电流大小,比如一些早期计算机是三进制的,有三种状态;五进制,五种状态。状态越多越难区分信号。而且抗干扰能力会越差(如果附件有电噪音,信号混在一起,每秒百万次变化的晶体管会让信号变得更复杂)

因此,应该尽可能把两种信号分开,只用两种开关01状态来减少这类问题:

布尔逻辑

有一个数学分支的存在,专门用于处理“真”和“假”,已经解决了所有法则和运算,叫布尔代数(布尔是由Grorge Boole由来,他用数学扩展亚里士多德基于哲学的逻辑方法)

布尔用 逻辑 方程 系统而正式的证明真理(truth),在1847年的第一本书《逻辑的数学分析》中介绍过:

“在常规代数里,在高中学的那种变量的值是数字,可以进行加减乘除之类的操作;但在布尔代数中,变量的值是true,false,可以进行逻辑操作”

三个基本操作:NOT,AND,OR

基础“真值表”

晶体管中有一个是控制线路,两个是电极。控制线路通电,半导体就会通电,底部的电极就有电流流出;反之亦然。


电流是从上到下流动的。 控制线路可以想象成输入,底部的电极想象成输出。一个晶体管有一个输入和输出。控制线路通电(输入打开)半导体就会导电,底部电极就有电路i流出(输出也会打开);反过来控制线路没有电流(false)时半导体就不导电,因此下面的电极就没有电流就是false

转换为布尔函数就是输入为true,输出为true;输入为false,输出也为false。这个叫做“真值表”:

NOT 如何实现?

布尔值反转,true进行NOT就是false,反之亦然.。

思路就是把输出的电线放到上面的电极当作OUTPUT;下面的电极接地。

一定要注意:电流是从上到下流动的。当有输入时,半导体会导电,下面会受到电流,这时候将下面的电极接地,这样电流就都经过了下面的电极,把输出的电线放到上面的电极当作OUTPUT就没有电流了(输入为true输出为false);如果没有输入时,半导体不导电,电流就会走OUTPUT。

这个是不是就可以实现,图示:

这个叫做NOT门,门是因为可以控制电流路径

AND如何实现?

有两个输入和一个输出构成,只有两个输入都是true时,输出才会也是true。 这个比上面的那个好理解。

  • 电流从左到右流动,如果第一个打开了,第二个输入没打开,就是这个样子:电流没有到达OUTPUT:
  • 如果第一个没打开,第二个打开了,更没有用,电流第一个都不会经过:
  • 只有都打开OUT才会收到电流:
OR如何实现?

和AND正好相反,都有两个输入一个输出,两个输出都是false时,输出才会false。

上面的线都是串联,这个OR实现用的时并联

下面那条线中第一个输入和第二个输入的中间是一个小“拱门”,代表第一个输入的电流可以跨过去。

就不放图了,只要任意一个输入打开,OUT都可以收到电流(下面的小拱门会把第一个输入的电流跨过去),只有都不打开OUTPUT才会收不到电流

图标表示

XOR亦或

和异或有一个不同就是:输入都是true的时候,输出是false

直接放组成图吧:

通过小拱门保证还是两个输入;true,true要返回false可以拆分成true AND true在 NOT 变为false,利用原有的OR的功能只要有一个false就是false,最后将这两个功能AND 最后就是false。

图标符号:一个OR门加一个笑脸😊

原文视频

【计算机科学速成课】[40集全/精校] - Crash Course ComputerScience

Youtube 原视频

原文链接:使用晶体管做布尔逻辑和逻辑门 - 掘金 (juejin.cn)

相关文章:

使用晶体管做布尔逻辑和逻辑门

目录 二进制,三进制,五进制 true,false表示0,1 早期计算机采用进制 布尔逻辑 三个基本操作:NOT,AND,OR 基础“真值表” NOT 如何实现? AND如何实现? OR如何实现? 图标表示…...

Linux系统编程系列之线程的信号处理

一、为什么要有线程的信号处理 由于多线程程序中线程的执行状态是并发的,因此当一个进程收到一个信号时,那么究竟由进程中的哪条线程响应这个信号就是不确定的,只能取决于哪条线程刚好在信号达到的瞬间被调度,这种不确定性在程序逻…...

【C语言】青蛙跳台阶 —— 详解

一、问题描述 跳台阶_牛客题霸_牛客网 (nowcoder.com) LCR 127. 跳跃训练 - 力扣(LeetCode) 二、解题思路 1、当 n 1 时,一共只有一级台阶,那么显然青蛙这时就只有一种跳法 2、当 n 2 时,一共有两级台阶&#xff…...

Java - 基本数据类型和封装类型

基本类型有默认值,而包装类型初始为null。然后再根据这两个特性进行分业务使用,在阿里巴巴的规范里所有的POJO类必须使用包装类型,而在本地变量推荐使用基本类型。 Java语言提供了八种基本类型。六种数字类型(四个整数型&#xff…...

day-63 代码随想录算法训练营(19) 图论 part 02

1020.飞地的数量 分析:求不跟边界接壤的陆地的数量 思路一:深度优先遍历 先从四个侧边找陆地,然后进行深度优先遍历,把所有接壤的陆地(1)全部转换成海洋(0) 深度优先遍历&#xf…...

SpringBoot的全局异常拦截

在 Spring Boot 中,可以通过使用 ControllerAdvice 注解和 ExceptionHandler 注解来实现全局异常拦截。 RestControllerAdvice RestControllerAdvice 是 Spring Framework 提供的注解,用于定义全局异常处理类,并且结合 ExceptionHandler 注…...

『力扣每日一题11』:转换成小写字母

一、题目 给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。 示例 1: 输入:s "Hello" 输出:"hello"示例 2: 输入:s "here" 输…...

复习Day07:链表part03:21. 合并两个有序链表、2. 两数相加

之前的blog链接:https://blog.csdn.net/weixin_43303286/article/details/131700482?spm1001.2014.3001.5501 我用的方法是在leetcode再过一遍例题,明显会的就复制粘贴,之前没写出来就重写,然后从拓展题目中找题目来写。辅以Lab…...

Ubuntu中启动HDFS后没有NameNode解决办法

关闭进程: stop-dfs.sh 格式化: hadoop namenode -format 出现报错信息: 23/10/03 22:27:04 WARN fs.FileUtil: Failed to delete file or dir [/usr/data/hadoop/tmp/dfs/name/current/fsimage_0000000000000000000.md5]: it still exi…...

AWS-Lambda之导入自定义包-pip包

参考文档: https://repost.aws/zh-Hans/knowledge-center/lambda-import-module-error-python https://blog.csdn.net/fxtxz2/article/details/112035627 简单来说,以 " alibabacloud_dyvmsapi20170525 " 包为例 ## 创建临时目录 mkdir /tmp cd ./tmp …...

MAC 如何解决GitHub下载速度慢的问题

说在前面 解决github下载速度慢的方法很多,本文主要介绍通过Git镜像的方式解决下载慢的问题。 主要步骤有:1、找到gitconfig文件, 2、通过git命令查看当前生效的config 配置 3、使用git config命令编辑并添加国内镜像源 1、gitconfig 文件在…...

Redis与分布式-哨兵模式

接上文 Redis与分布式-主从复制 1.哨兵模式 启动一个哨兵,只需要修改配置文件即可, sentinel monitor lbwnb 1247.0.0.1 6001 1先将所有服务关闭,然后修改配置文件,redis Master,redis Slave,redis Slave…...

创建型设计模式 原型模式 建造者模式 创建者模式对比

创建型设计模式 单例 工厂模式 看这一篇就够了_软工菜鸡的博客-CSDN博客 4.3 原型模式 4.3.1 概述 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 4.3.2 结构 原型模式包含如下角色: 抽象原型类:规定了…...

HTML详细基础(二)文件路径

目录 一.相对路径 二.绝对路径 三.超链接标签 四.锚点链接 首先,扩展一些HTML执行的原理: htmL(hypertext markup Language) 是一种规范(或者说是一种标准),它通过标记符(tag)来标记要显示…...

大数据-玩转数据-Flink 海量数据实时去重

一、海量数据实时去重说明 借助redis的Set,需要频繁连接Redis,如果数据量过大, 对redis的内存也是一种压力;使用Flink的MapState,如果数据量过大, 状态后端最好选择 RocksDBStateBackend; 使用布隆过滤器,…...

1.在vsCode上创建Hello,World

(1).编译器的安装配置 使用vsCode进行编写c语言,首先需要安装gcc编译器,可以自己去寻找资料或者gcc官网进行下载. 下载好后,将文件夹放入到自己指定的目录后,配置系统环境变量,将path指向编译器的bin目录 进入bin目录打开cmd,输入gcc -v,然后就会成功输出信息. (2).vsCode配…...

XrayGLM - 医学大模型

文章目录 关于 XrayGLM研究背景VisualGLM-6B 关于 XrayGLM XrayGLM: 首个会看胸部X光片的中文多模态医学大模型 | The first Chinese Medical Multimodal Model that Chest Radiographs Summarization. 基于VisualGLM-6B 微调 github : https://github.com/WangRongsheng/Xra…...

Hive 常见数据倾斜场景及解决方案(Map\Join\Reduce端)

目录 MapReduce流程简述a) Map倾斜b) Join倾斜c) Reduce倾斜 首先回顾一下MapReduce的流程 MapReduce流程简述 输入分片: MapReduce 作业开始时,输入数据被分割成多个分片,每个分片大小一般在 16MB 到 128MB 之间。这些分片会被分配给不同的…...

C++中的四种强制类型转换符详解

前 言 C 既支持 C 风格的类型转换,又有自己风格的类型转换。C 风格的转换格式很简单,但是有不少缺点: 转换太过随意,可以在任意类型之间转换。你可以把一个指向 const 对象的指针转换成指向非 const 对象的指针,把一…...

Windows电脑多开器的优缺点对比

Windows电脑多开器是一种能够让用户同时运行多个应用程序、游戏或者网页的软件工具。它的作用在于让用户能够更加高效地工作、学习或者娱乐。但是,这种软件也存在一些优劣势的对比。 优点: 提升工作效率。多开器可以让用户同时打开多个应用程序或者网页…...

UG/NX二次开发必备:C#和C++项目DLL自动签名与拷贝全攻略(附避坑指南)

UG/NX二次开发实战:C#与C项目DLL签名与部署全流程解析 在工业设计软件领域,Siemens NX(原Unigraphics)的二次开发能力一直是工程师扩展功能、提升效率的重要途径。而DLL文件的数字签名环节,则是确保开发成果能在正版NX…...

仿真模型中硅胶减震器的特征频率与谐振频率的受力分析

COMSOL仿真模型硅胶减震器减振器特征频率谐振频率受力分析仿真模型最近在研究硅胶减震器的特性,发现用COMSOL来仿真这东西还挺有意思的。硅胶减震器嘛,主要就是用来减振的,比如在一些精密仪器或者机械设备上,防止振动对设备造成损…...

Python多线程性能翻倍实录(GIL禁用+细粒度原子操作配置全指南)

第一章:Python无锁GIL环境下的并发模型概览Python 的全局解释器锁(GIL)长期被视为多线程 CPU 密集型任务的瓶颈。然而,随着 CPython 3.13 的正式引入“实验性无锁 GIL”(--without-pymalloc 配合 --with-gildisabled 构…...

基于Matlab的转子系统临界转速与主振型求解:传递矩阵法及其参数涉及等截面、材料与轮盘参数的...

140.基于matlab的求解转子系统前三个临界转速和主振型的传递矩阵法转子系统的不平衡响应 参数涉及等截面参数、材料参数、轮盘参数 程序已调通,可直接运行传递矩阵法这玩意儿在转子动力学里属于实操性极强的工具,今天咱们就拿Matlab直接开搞转子系统的前…...

Phi-3 Forest Laboratory创意图像提示词生成效果:将抽象概念转化为视觉描述

Phi-3 Forest Laboratory创意图像提示词生成效果:将抽象概念转化为视觉描述 你有没有过这样的经历?脑子里冒出一个特别酷的画面,比如“赛博朋克风格的孤独”,或者“初夏清晨的宁静”,感觉特别有味道,但就是…...

vLLM 5.0.4 实战:从参数解析到批量推理的性能调优指南

1. vLLM 5.0.4核心参数解析与实战配置 初次接触vLLM时,最让人头疼的就是那一长串参数列表。我在实际项目中使用Meta-Llama-3.1-8B-Instruct模型时,就曾因为参数配置不当导致显存爆炸。下面分享几个关键参数的实战经验: LLM类参数中的max_mode…...

清音刻墨镜像免配置亮点:内置10+中文领域词典(医疗/法律/IT)开箱即用

清音刻墨镜像免配置亮点:内置10中文领域词典(医疗/法律/IT)开箱即用 1. 为什么字幕对齐需要专业词典? 做视频字幕的朋友都知道,最头疼的不是生成文字,而是让文字和声音完美对齐。普通字幕工具遇到专业术语…...

什么时候会触发FullGC

面试 1、老年代空间不足。应该让对象在年轻代多存活一段时间,不要创建过大的对象及数组。 2、元空间满了。说明此时,系统中要加载的类、反射的类和调用的方法较多。 3、MinorGC执行后晋升到老年代的平均大小大于老年代的剩余空间。...

League Akari:5大核心解决方案提升英雄联盟游戏体验

League Akari:5大核心解决方案提升英雄联盟游戏体验 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一…...

RK3568 NPU RKNN(五):RKNN-ToolKit2性能与内存评估实战解析

1. 环境准备与工具链搭建 在开始RKNN-ToolKit2的性能与内存评估之前,我们需要先搭建完整的开发环境。这里以野火LubanCat开发板为例,具体硬件配置为RK3568芯片4GB内存版本。开发主机建议使用Ubuntu 20.04系统,确保Python版本在3.6-3.8之间。 …...