0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

三种基本逻辑运算介绍

CHANBAEK 来源:头条号底层技术栈 作者:头条号底层技术栈 2023-03-23 13:57 次阅读

模拟电路可以利用三极管的导通 / 截止实现数字状态的切换,从而实现0和1的逻辑运算。

逻辑运算常用的有3种:与、或、非,它们都是1个二进制位的位运算。

在位运算的基础上,可以进一步实现加减运算。

位运算的特点是,多个位之间是无关的。

加减运算有进位和借位,多个位之间是相关的。

这里简单的给一下它们的电路:

1,与门,

pYYBAGQb6mCAS4pyAACy4xHE10U431.jpg

电路,与门

1个电阻和2个二极管组成的与门,如上图。

2个二极管只要有1个导通(低电位0),输出电位就是0.7v,为低电位0。

0 & 1 == 1 & 0 == 0.

2个二极管都截止时(高电位1),输出等于电源电压,为高电位1。

1 & 1 == 1.

2,或门,

或门正好反过来,二极管接近电源正极,电阻接近电源负极。

poYBAGQb6mGALCsLAACsjsyAuM0784.jpg

电路,或门

2个二极管里只要有一个导通(高电位1),输出端就是高电位1。

1 | 0 == 0 | 1 == 1.

2个二极管都截止时,输出端是低电位0。

0 | 0 == 0.

二极管接到电源正极上就会导通,接到负极上就会截止。

3,非门,

非门,利用的是三极管的反相放大器

当b极为高电位1时,三极管导通,电源电压大部分加在上拉电阻上,输出为低电位0。

反之,输出为高电位1。

pYYBAGQb6mKACz7jAACuVfpiODw455.jpg

电路,非门

位运算的电路都是很简单的,因为多个位之间不相关。

只要把多个电路并联起来,每个处理1个二进制位,就可以实现32位的运算。

4,加法,

加法因为有进位,比单纯的位运算要复杂一点。

0 + 0 = 0,

1 + 0 = 1,

0 + 1 = 1,

1 + 1 = 10,

二进制加法的前3种情况就是或运算,所以1个或门就可以处理前3种情况。

复杂的是1+1 = 10的情况,要处理进位:个位要变成0,十位要进位1。

主要说说这种情况:

下图是我随手画的二进制加法的电路

poYBAGQb6mOAKZfIAAC-tgTiZ7o057.jpg

电路,加法

蓝色的电阻和2个向右的二极管组成或门,处理前3种情况:

0 + 0时,个位输出和三极管的b极都是0,结果为0;

0 + 1 == 1 + 0时,个位输出为1,三极管的b极为0,结果为1。

最后一种情况,1 + 1 == 10 时:

红色的电阻和2个向左的二极管组成与门,当2个加数都是1时,三极管的b极为高电位1,

这时三极管导通,三极管的c极为低电位0;

或门的输出为1,电流将沿着图中箭头的流向,经过三极管的c-e极流入电源负极,

个位输出与三极管的c极电压一样,为低电位0;

十位输出与三极管的b极电压一样,为高电位1。

这样就实现了1个二进制位的加法运算:1 + 1 = 10.

如果有多个二进制位,就把上图的电路并联起来,同时把(十位的)进位输出转到下一级的输入,继续更高位的运算。

位数越高电路越复杂,因为加法的各个位之间是可以进位的。

所以,在数字电路层面不适合处理复杂的逻辑,因为仅仅是加减乘除的实现就已经很复杂了。

所以,计算机的设计必然是分层的:

1)数字电路仅仅实现汇编代码级的逻辑,

2)更复杂的程序逻辑,放在C语言层面,

3)最复杂的逻辑,放在高级语言层面,毕竟C语言是个挂着高级语言的名头的大号汇编如果不做分层设计,电子工程师要考虑的情况就太多了,需求的耦合度太大!

一旦耦合度大了之后,工程师们就会考虑分层分模块的设计。

编译器被分为词法、语法、语义、中间代码、机器码、目标文件生成、连接器,也是因为不这么划分的话耦合度太大了。

汇编代码难写,是因为它过于底层,与人类平时的思维方式差别很大。

但从数字电路的角度来看,汇编代码已经很上层了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 三极管
    +关注

    关注

    142

    文章

    3611

    浏览量

    121868
  • 模拟电路
    +关注

    关注

    125

    文章

    1556

    浏览量

    102717
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136686
  • 数字电路
    +关注

    关注

    193

    文章

    1605

    浏览量

    80578
  • 逻辑运算
    +关注

    关注

    0

    文章

    56

    浏览量

    9758
收藏 人收藏

    评论

    相关推荐

    16进制字符串的逻辑运算问题

    在一些网站上看到有些大虾编的程序,逻辑运算前竟然可以是16进制字符串,如图但是系统明明说逻辑运算只支持布尔和数值类型,这是怎么回事呢,求解!!!!!!还有其他方法可以实现16进制字符的逻辑运算吗?
    发表于 09-17 12:48

    逻辑运算符是什么

    逻辑运算符:与或非条件结构if -else及其嵌套循环结构whilefordo-while
    发表于 07-14 07:50

    逻辑电路与逻辑运算

    一、逻辑电路与逻辑运算逻辑运算符:(1)按变量整体值进行运算逻辑与(&&)逻辑或(||)
    发表于 07-16 10:51

    基本逻辑运算

    基本逻辑运算   在分析和设计数字电路时,需要使用的一个数学工具是逻辑代数。逻辑代数也称为布尔代数,由英国数学家G.Boole提出。逻辑代数是按一定
    发表于 04-06 23:56 3184次阅读
    基本<b class='flag-5'>逻辑运算</b>

    逻辑运算,什么是逻辑运算

    逻辑运算,什么是逻辑运算    计算机中除了进行加、减、乘、除等基本算术运算外,还可对两个或一个逻辑数进行逻辑运算。所谓
    发表于 04-13 10:48 3.2w次阅读

    实用数制转换及逻辑运算计算器

    软件介绍 二进制,十进制数值转换,取余,取模,位或等逻辑运算计算器
    发表于 03-04 16:54 228次下载
    实用数制转换及<b class='flag-5'>逻辑运算</b>计算器

    逻辑运算与移位指令

    逻辑运算与移位指令:8086/8088CPU的指令系统提供8位和16位的逻辑运算与移位指令有3组。 逻辑运算指令 AND/OR/XOR/NOT/TEST 移位指令 SHL/SHR/SAL/SAR 循环移位指令 ROL/ROR/R
    发表于 07-03 23:52 0次下载

    基于单片机实现的逻辑运算程序详解

    本文主要介绍的是基于单片机实现的逻辑运算程序详解,具体的跟随小编一起来了解一下。
    的头像 发表于 05-12 01:47 1w次阅读

    单片机的逻辑电路与逻辑运算介绍

    在数字电路,我们经常会遇到逻辑电路,而在 C 语言中,我们则经常用到逻辑运算,二者在原理上是相互关联的。辑运算
    的头像 发表于 01-29 12:52 7833次阅读
    单片机的<b class='flag-5'>逻辑</b>电路与<b class='flag-5'>逻辑运算</b>的<b class='flag-5'>介绍</b>

    51单片机的算术和逻辑运算功能介绍

    A)算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和单字节数据进行操作。 B)加、减、乘、除、加1、减1、比较等算术运算。 C)与、或、异或、求补、循环等逻辑运算。 D)位处理功能(即布尔处理器
    发表于 09-14 17:20 4682次阅读

    什么是逻辑运算

    逻辑运算符对其操作数求值,并返回一个值,该值指示求值结果是真还是假(true or false)。例如,运算a && b测试a和b是否都为真,如果两个操作数都为真,则运算符返回真。否则,运算
    的头像 发表于 02-09 15:55 2017次阅读
    什么是<b class='flag-5'>逻辑运算</b>符

    C语言逻辑运算符优先次序

    有3逻辑运算符:与(AND),或(OR),非(NOT)。在basic和Pascal等语言可以在程序中直接用and,or,not作为逻辑运算符。在C语言中不能再程序中直接使用,而是用其他符号代替。
    的头像 发表于 03-09 10:49 3101次阅读

    KUKA机器人的逻辑运算

    逻辑运算符用于布尔变量、常数和简单的、借助比较运算符构成的逻辑表达式的逻辑运算
    发表于 07-21 10:06 2518次阅读
    KUKA机器人的<b class='flag-5'>逻辑运算</b>符

    verilog的逻辑运算

    写在前面 之前曾经整理过verilog的各类运算符的表达方式,但是在学习的过程中并未深入研究关于逻辑运算符的相关知识,导致在实际使用过程中错误频出,下面是我从网络上整理的相关verilog的逻辑运算
    的头像 发表于 09-21 10:07 2358次阅读
    verilog的<b class='flag-5'>逻辑运算</b>符

    PLC中的逻辑运算方式有哪些

    PLC(可编程逻辑控制器)中的逻辑运算方式主要包括以下几种,这些逻辑运算在PLC编程中扮演着至关重要的角色,用于实现各种复杂的控制逻辑
    的头像 发表于 07-24 16:55 623次阅读