欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

布尔(布林)代数及其运算

最编程 2024-06-11 10:22:00
...

布尔(BOOL)代数以及运算

简介:二进制值是计算机编码、存储和操作信息的核心,所以围绕数值0和1的研究已经演化出了丰富的数学知识体系。这起源于1850年前后乔治·布尔(George Boole, 1815-1864)的工作,因此也称为布尔代数(Bool algebra)。布尔注意到通过将逻辑值TRUE (真)和FALSE (假)编码为二进制值1和0,能够设计出一种代数,以研究逻辑推理的基本原则。

最简单的布尔代数是在二元集合{0, 1}基础上的定义。我们用来表示这些运算的符号是和C语言的位级运算使用的符号相匹配的。布尔运算 ~ 对应于逻辑运算NOT,在命题逻辑中用符号 ¬ 表示。也就是说,当P不是真的时候,我们就说¬P是真的,反之亦然。相应地,当P等于0时, ~P等于1,反之亦然。布尔运算&对应于逻辑运算AND,在命题逻辑中用符号∧表示。当P和Q都为真时,我们说P ∧ Q为真。相应地,只有当p=1且q=1时, p&q才等于1。布尔运算 | 对应于逻辑运算OR,在命题逻辑中用符号∨示。当P或者Q为真时,我们说P ∨ Q成立。相应地,当p=1或者q=1时,p|q等于1。布尔运算 ^ 对应于逻辑运算异或,在命题逻辑中用符号⊕表示。当P或者Q为真但不同时为真时,我们说P ⊕ Q成立。相应地,当p=1且q=0,或者p=0且q=1时, p ∧ q等于1.

  • 符号表示区分:
逻辑运算 布尔运算 命题逻辑 C语言的逻辑运算符
NOT(非;取反) ~ !
AND(与) & &&
OR(或) | ||
XOR(异或) ^

在这里插入图片描述

后来创立信息理论领域的Claude Shannon (1916-2001)首先建立了布尔代数和数字逻辑之间的联系。在1937年,他在硕士论文中表明了布尔代数可以用来设计和分析机电继电器网络。尽管那时计算机技术已经取得了相当的发展,但是布尔代数仍然在数字系统的设计和分析中扮演着重要的角色。

  • 举个栗子:

    假设w = 4,参数 a= [0110], b= [1100]. 那么4种运算a&b、a|b 、a^b和~b分别的结果。如下图:

    在这里插入图片描述

  • 再来个简单练习:

  • 运算 结果
    a [01101001]
    b [01010101]
    ~a
    ~b
    a&b
    a|b
    a^b

填表,给出位向量的布尔运算的求值结果


  • 答案:

  • 运算 结果
    a [01101001]
    b [01010101]
    ~a [10010110]
    ~b [10101010]
    a&b [01000001]
    a|b [01111101]
    a^b [00111100]