首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NOT,AND,OR—布尔逻辑和逻辑门(二)

NOT NOT 操作把布尔值反转,把 true 进行 NOT 就会变成 false,反之亦然, 我们可以根据 NOT 操作的输入和输出,做出这个表。酷的地方是 - 用晶体管可以轻松实现这个逻辑。...如果我们打开输入(input on) 输出也会打开(output on) 因为电流可以流过,如果关闭输入(input off) 输出也会关闭(output off) 因为电流无法通过,或者用布尔术语来说输入为真...我们做了个有点用的电路!我们叫它 "NOT 门" 之所以叫 "门",是因为它能控制电流的路径。 AND "AND"操作有 2 个输入,1 个输出。如果 2 个输入都是 true,输出才是 true。...就算把前后顺序反过来,也依然是假,如果我说 2 个假的事情,那么结果是假。...只有 2 个输入都是 false,OR 的结果才是 false。 实现 "OR 门" 除了晶体管还要额外的线,不是串联起来,而是并联。然后左边这条线有电流输入。

1.7K20

XOR—布尔逻辑和逻辑门(三)

因为 OR 和 XOR 的逻辑表很像,只有 1 个问题 - 当 A 和 B 都是 true 时 , OR 的输出和想要的 XOR 输出不一样,我们想要 false。 XOR 超有用的,我们下次再说它。...重要的是,现在可以把 XOR 放入"工具箱"了。不用担心 XOR 具体用了几个门,这几个门又是怎么用晶体管拼的,或电子是怎么流过半导体的。...逻辑门 再次向上抽象,工程师设计处理器时,很少在晶体管的层面上思考,而是用更大的组件,比如逻辑门,或者由逻辑门组成的更大组件,我们以后会讲。...就算是专业程序员,也不用考虑逻辑是怎样在物理层面实现的, 也不用考虑逻辑是怎样在物理层面实现的,我们从电信号开始,到现在第一次表示数据,真和假 ,开始有点"计算"的感觉了。...仅用这集讲的逻辑门,我们可以判断复杂的语句。 比如:[如果是 John Green] AND [下午 5 点后] OR [周末] AND [在比萨店附近],那么 "John 想要比萨" = 真。

1.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数理逻辑-布尔代数

    布尔代数简介 英国数学家G.布尔为了研究思维规律(逻辑学、数理逻辑)于1847和1854年提出的数学模型。...布尔此时已经在研究逻辑代数,即布尔代数.他把逻辑简化成极为容易和简单的一种代数.在这种代数中,适当的材料上的“推理 ”,成了公式的初等运算的事情,这些公式比过去在中学代数第二年级课程中所运用的大多数公式要简单得多...有时也被称为布尔代数的一个相关主题是布尔逻辑,它可以被定义为是所有布尔代数所公有的东西.它由在布尔代数的元素间永远成立的关系组成,而不管你具体的那个布尔代数.因为逻辑门和某些电子电路的代数在形式上也是这样的...,所以同在数理逻辑中一样,布尔逻辑也在工程和计算机科学中研究.在布尔代数上的运算被称为AND(与)、OR(或)和NOT(非).代数结构要是布尔代数,这些运算的行为就必须和两元素的布尔代数一样(这两个元素是...可是后来罗素对布尔的评价很高,就是他是一个纯粹的数学发现者。后来又一个著名的逻辑史学家波亨斯基对布尔《逻辑的数学分析》《思维规律》的评价相当高,说布尔代数是现代计算机的基本运行方式。

    1.3K10

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

    而且抗干扰能力会越差(如果附件有电噪音,信号混在一起,每秒百万次变化的晶体管会让信号变得更复杂) 因此,应该尽可能把两种信号分开,只用两种开关01状态来减少这类问题: 布尔逻辑 有一个数学分支的存在...,专门用于处理“真”和“假”,已经解决了所有法则和运算,叫布尔代数(布尔是由Grorge Boole由来,他用数学扩展亚里士多德基于哲学的逻辑方法) 布尔用 逻辑 方程 系统而正式的证明真理(truth...),在1847年的第一本书《逻辑的数学分析》中介绍过: “在常规代数里,在高中学的那种变量的值是数字,可以进行加减乘除之类的操作;但在布尔代数中,变量的值是true,false,可以进行逻辑操作” 三个基本操作...控制线路通电(输入打开)半导体就会导电,底部电极就有电路i流出(输出也会打开);反过来控制线路没有电流(false)时半导体就不导电,因此下面的电极就没有电流就是false 转换为布尔函数就是输入为...布尔值反转,true进行NOT就是false,反之亦然.。 思路就是把输出的电线放到上面的电极当作OUTPUT;下面的电极接地。 一定要注意:电流是从上到下流动的。

    69730

    python布尔类型和逻辑运算

    布尔类型 python中True表示真,False表示假,它们是布尔类型: >>> type(True) 在python中,bool的True和False是数值1和0的字符串表示格式...但实际上,python中的任何一个数据对象要么是True,要么是False,所以可以直接在布尔测试的表达式中使用,而并非一定要去大小比较、通过函数测试等等。...逻辑运算:and、or、not python中只支持字符形式的and、or、not逻辑运算,不支持符号类型的&&、||、!。...再次说明,and、or返回的不是True/False的布尔值,而是逻辑表达式的运算结果。...但因为python中只要是数据,要么是True,要么是False,所以and/or/not都可以用于真假测试,只不过and/or还可以在布尔测试的基础上进行赋值操作。

    1.7K10

    精通Excel数组公式012:布尔逻辑:AND和OR

    布尔(Boolean)是一种数据类型,仅有两个值,即TRUE或FALSE,或者1或0: TRUE = 1 FALSE = 0 在Excel公式中,经常要用到逻辑条件。...图1 AND条件 当执行AND逻辑测试时,所有的测试都必须为TRUE,最终的AND逻辑测试结果才是TRUE。如果任何一个逻辑测试为FALSE,AND逻辑测试的结果为FALSE。...下面展示了一些AND条件的示例。 ? 图2:公式[1]至[4]使用了AND条件。公式[5]使用布尔乘法的AND条件。公式[6]使用布尔乘法和除法的AND条件。公式[7]使用IF函数和布尔AND条件。...图7:在辅助列中使用了带有4个逻辑测试的AND函数。 ? 图8:使用逻辑测试相乘来创建布尔辅助列。...正如在上述例子中所看到的,诸如像SUMIFS函数、使用布尔运算或IF函数的数组公式、数据透视表、带有筛选和汇总行的表、筛选、高级筛选、以及辅助列解决方法都可以使用AND条件运算。

    2.4K30

    精通Java逻辑运算符:深入理解布尔逻辑

    逻辑运算符主要用于布尔值之间的运算,通过这些运算符,可以对多个条件进行逻辑与、逻辑或和逻辑非的操作。  ...概述  在Java中,逻辑运算符用于对布尔表达式进行操作。常见的逻辑运算符包括:&& (逻辑与)|| (逻辑或)! (逻辑非)  这些运算符通常用于条件语句中,以实现更复杂的逻辑判断。...参数:a - 第一个布尔值,b - 第二个布尔值。返回值:两个布尔值的逻辑与结果。public boolean or(boolean a, boolean b)功能:实现逻辑或操作。...参数:a - 第一个布尔值,b - 第二个布尔值。返回值:两个布尔值的逻辑或结果。public boolean not(boolean a)功能:实现逻辑非操作。参数:a - 一个布尔值。...返回值:布尔值的逻辑非结果。

    16321

    为什么计算机用二进制—布尔逻辑和逻辑门(一)

    原因二 计算机用二进制的另一个原因是,有一整个数学分支存在,专门处理"真"和"假",它已经解决了所有法则和运算叫"布尔代数"!...乔治·布尔(George Boole)是布尔二字的由来,是一位 19 世纪自学成才的英国数学家,他有兴趣用数学式子 扩展亚里士多德基于哲学的逻辑方法,布尔用 逻辑方程 系统而正式的证明真理,他在 1847...年的第一本书"逻辑的数学分析"中介绍过。...在"常规"代数里,你在高中学的那种,变量的值是数字,可以进行加法或乘法之类的操作。但在布尔代数中,变量的值是 true 和 false,能进行逻辑操作。...布尔代数中有三个基本操作:NOT, AND 和 OR。

    97420

    被围绕的区域

    被围绕的区域 给定一个二维的矩阵,包含X和O。 找到所有被X围绕的区域,并将这些区域里所有的O用X填充。 被围绕的区间不会存在于边界上,换句话说,任何边界上的O都不会被填充为X。...任何不在边界上,或不与边界上的O相连的O最终都会被填充为X。如果两个元素在水平或垂直方向相邻,则称它们是相连的。...示例 X X X X X O O X X X O X X O X X 运行你的函数后,矩阵变为: X X X X X X X X X X X X X O X X 解释 被围绕的区间不会存在于边界上,换句话说...任何不在边界上,或不与边界上的O相连的O最终都会被填充为X。如果两个元素在水平或垂直方向相邻,则称它们是相连的。...,将所有与边界O相连的O标记为A,最后遍历矩阵,将矩阵中所有现在存在的O替换成X,即被包围的需要替换的O,然后将所有的A替换回O即可。

    48720

    乔治·布尔二百周年:数理逻辑奠基者其人其事

    但历史总是惊人地相似,其实,布尔类型变量只是乔治布尔对逻辑学贡献的一个副产品。 乔治·布尔出名前,数学和逻辑学已单独发展了二百多年。他通过布尔代数这一概念,将两个学科结合在了一起。...数理逻辑领域创建后,一系列新探索都被带动起来,例如通用计算。 乔治·布尔发明布尔变量最初的目标,是想通过一系列数学公理来重现经典逻辑的运算结果。他从研究经典代数开始,例如x,y变量,加减乘除这种。...这就存在歧义,乔治·布尔的想法是:仍然使用经典代数的符号,但是添加了一些额外的公理,就能表示出绝大多数逻辑学的结果了。 乔治·布尔用数学语言正式地描述了这套理论。...根据乔治·布尔的理论,这条公理仅仅是他思想的一个最低版本:通过数学公理系统,加以类似代数的转换,可以计算出所有逻辑的结果。 乔治·布尔是何许人也? 那么乔治·布尔到底是谁呢?...但是很好地解释了乔治·布尔使用代数形式来表达逻辑的思想。

    1.1K50

    【Go 基础篇】Go语言布尔类型:探索逻辑值的本质与应用

    介绍 布尔类型是计算机编程中用于表示逻辑值的数据类型,主要用于判断和控制程序的流程。在Go语言(Golang)中,布尔类型具有简单而强大的特点,适用于各种条件判断、逻辑运算和控制流程。...本篇博客将深入探讨Go语言中的布尔类型,介绍布尔值的表示、逻辑运算、条件判断以及在实际开发中的应用。 布尔类型的表示与取值 在Go语言中,布尔类型用于表示真(true)和假(false)两种逻辑值。...条件判断与逻辑运算 布尔类型用于进行条件判断和逻辑运算,例如判断是否满足某个条件、比较两个值的关系等。布尔类型的运算可以帮助实现复杂的逻辑判断。...逻辑运算和比较运算可以生成布尔值,但需要注意运算结果的正确性。 布尔表达式 在布尔表达式中,应避免使用复杂的嵌套逻辑,以免降低代码的可读性。可以使用括号来明确表达式的计算顺序。...本篇博客深入探讨了Go语言中的布尔类型,介绍了布尔值的表示、逻辑运算、条件判断以及在实际开发中的应用。

    36820

    从围绕API到围绕数据-使用流式编程构建更简洁的架构

    背景 在服务刚刚搭建时,通常的思维就是根据API编写业务逻辑: // SendStream ......究其原因,这是因为抽象层次不够造成的。 摒除以API为中心的编程模式 在网络编程中,一般会引入中间件(比如trpc的filter)来处理共有逻辑,比如鉴权,日志,panic处理等。...这样,在编写业务逻辑时就能站在更上层、数据的角度思考问题。 流式处理 在上面,每个数据源都已经被封装为一个ChanSource(本质是chan),现在来统一规划业务逻辑。...使用go-streams,将整个业务逻辑抽象成数据流的多个步骤: 此编程模式的特色之处在于: 每个步骤接收上一个节点的数据,处理之后,将数据发往下一跳。...围绕数据编程,方便抽象施加统一的处理过程,比如getParser,getSender两个工厂函数。 可以任意的在节点间统一的新增其它的处理,不侵入已经编写好的业务逻辑。

    86530

    Python中的布尔类型以及布尔值介绍

    什么是布尔类型? 布尔类型是一种逻辑类型,它只有两个取值:True(真)和False(假)。在Python中,True和False是内置的布尔类型常量,用于表示真和假的状态。...布尔运算符 在Python中,布尔类型常常与布尔运算符一起使用,来进行逻辑判断和条件控制。常见的布尔运算符有以下几种: and:逻辑与运算符,当所有条件都为真时返回真,否则返回假。...布尔类型的应用场景 布尔类型在编程中有着广泛的应用,下面介绍几个常见的应用场景: 条件判断:布尔类型常用于条件语句中,根据条件的真假执行相应的代码块。...布尔类型的注意事项 在使用布尔类型时,需要注意以下几点: 布尔类型的首字母必须大写,即True和False。 布尔类型可以进行逻辑运算,但不能与其他类型进行算术运算。...布尔类型可以与其他类型进行比较运算,返回布尔值。 布尔类型的值可以通过条件表达式、逻辑运算、比较运算等方式得到。

    89120

    Surrounded Regions被围绕的区域

    题目大意 有一个二维的面板,上面由”X”或者”O”填充。现在要求将被”X”包围的”O”都改成”X”。...解题思路 参考: https://shenjie1993.gitbooks.io/leetcode-python/130%20Surrounded%20Regions.html 直接去找被X包围的O...比较麻烦,不如转换一下思路,找出哪些O是没有被X包围的。...首先在面板四周的O肯定是没有被X包围的,与它们相连的O也是没有被包围的,其它的O都是被X包围的。 问题简化为将与四周的O相连的O都找出来,这些点不用变,其它点都变为X。...首先将四周的O压入栈内,依次访问栈内元素,并将它们标记,接着去判断它们四周的元素是否也是O,如果是且没有被标记过,则将其压入栈中。 当遍历完栈中的元素后,将有标记的元素变为O,其余都是X。

    55930

    被围绕的区域

    给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。 找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。...示例: X X X X X O O X X X O X X O X X 运行你的函数后,矩阵变为: X X X X X X X X X X X X X O X X 解释: 被围绕的区间不会存在于边界上...任何不在边界上,或不与边界上的 'O' 相连的 'O' 最终都会被填充为 'X'。如果两个元素在水平或垂直方向相邻,则称它们是“相连”的。 解:这题用到并查集算法,由点及面,来了解一下什么是并查集。...动态连接(Dynamic connectivity)的问题 所谓的动态连接问题是指在一组可能相互连接也可能相互没有连接的对象中,判断给定的两个对象是否联通的一类问题。...对于这组对象,其中相互连接的一些对象构成的子集称为联通集。

    36610
    领券