问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

二进制逻辑运算:完整实用指南

创作时间:
作者:
@小白创作中心

二进制逻辑运算:完整实用指南

引用
1
来源
1.
https://zh-cn.hwlibre.com/%E4%BA%8C%E8%BF%9B%E5%88%B6%E9%80%BB%E8%BE%91%E8%BF%90%E7%AE%97%E5%AE%8C%E6%95%B4%E5%AE%9E%E7%94%A8%E6%8C%87%E5%8D%97/

二进制逻辑运算是计算和数字电子领域的基础。它们不仅可以进行计算和数据处理,而且还是当前计算机运行的基础。每个操作都旨在处理位,即0和1的值,它们代表我们日常生活中使用的设备的电路的开和关状态。

二进制逻辑的概念已经使用了很长时间,但随着数字技术的发展,其重要性呈指数级增长。在本文中,我们将深入探讨可以对一组位执行的不同逻辑运算、它们的工作原理以及它们最常应用的位置。无论您是第一次面对这个主题的学生还是已经有该领域的经验,您都会找到有用且详细的信息。

二元逻辑的作用

二进制逻辑适用于两种状态:0 和 1,对应于经典逻辑中的假和真。这允许在计算机系统和数字设备中处理大量数据。对这些位执行的操作称为布尔运算,它构成了布尔代数的核心。这两种状态允许定义可由电路和软件以极其快速和精确的方式验证和处理的条件。

主要逻辑运算

二进制数的逻辑运算是逐位执行的,也就是说,每个位都根据另一个输入中的对应位单独进行评估。然后将每一位的结果组合起来形成运算的最终结果。最常见的基本操作如下所述。

AND 运算(逻辑与)

AND 运算负责将两位作为输入并生成一个输出,该输出将是仅当两个输入位均为 1 时才为 1。否则,输出将为 0。换句话说,两个位都需要为 true 才能产生 true 结果。

AND 运算示例:

 1010和1100 = 1000

在此示例中,只有两个输入都为 true 的位才会在结果中保持打开状态(即,它们为 1)。

OR 运算(逻辑或)

另一方面,OR 运算将两位作为输入并返回一个如果至少一个输入位为 1,则为 1。也就是说,如果两者之一(或两者)为真,则结果也将为真。

或运算示例:

 1010或1100 = 1110

在这种情况下,任何一个或两个输入上为真的位在输出上也将为真。

NOT 运算(逻辑非)

NOT 运算是最简单的,因为它只需要一位作为输入。其功能是将输入位的值反转。因此,如果输入为0,则输出为1,反之亦然。

NOT 运算示例:

 非 1010 = 0101

在此示例中,结果中的所有位均已反转。

附加逻辑运算

除了这三个主要的逻辑操作之外,还有其他较少使用的逻辑操作,但在某些系统和情况下也发挥着重要作用。

NAND 运算(逻辑 NOT AND)

NAND 是 AND 与 NOT 反转的组合。每当至少有一个输入位为 0。如果两个输入位均为 0,则仅返回 1。

NOR(逻辑非或)运算

NOR 是 OR 运算的逆运算。它的变化方式使其结果仅为 1如果两个输入位均为 0。否则将返回0。

XOR(异或)运算

XOR 是一种逻辑运算,仅当输入位彼此不同时才返回 1。如果两者相等(均为 0 或均为 1),则结果将为 0。

XNOR 运算(非异或 O)

XOR 还有一个对应项:XNOR。如果输入位相同(均为 1 或均为 0),则该运算符返回 1;如果输入位不同,则返回 0。

二元逻辑运算用在什么地方?

二元逻辑运算在以下领域极为常见网络系统、数字电子和编程。尽管我们可能没有意识到,这些操作是我们使用电子设备进行的许多日常活动的背后。

使用这些操作的最明显的例子之一是IPv4 地址。连接到网络的每个设备都分配有一个 IP 地址和子网掩码。使用 AND 运算,设备将其地址与其他设备的地址进行比较,以了解它们是否属于同一网络,或者正在传输的数据是否应发送到不同的网络。

IPv4 中的使用示例:

当设备将其地址与子网掩码进行比较时:

 IP 地址:11000000.10101000.00000001.00000001 子网:11111111.11111111.11111111.00000000

逐位应用 AND 运算,我们得到以下结果:

 11000000.10101000.00000001.00000000

结果是设备所属的网络地址。

乔治·布尔的重要性

如果没有数学家的工作,我们所描述的二元逻辑和运算集就不会存在乔治布尔。这位 19 世纪的天才创造了我们所知道的布尔代数,它为布尔运算奠定了数学基础,并最终为当今计算机和数字系统构建的二进制逻辑奠定了数学基础。

布尔在数学和逻辑走不同道路的时代做出了他的贡献。他将这两个学科结合起来的愿景改变了我们今天所理解的数字逻辑的基础。

按位运算

除了上述操作之外,位级操作在数据处理中也有非常实际的应用。这些操作允许操作和修改各个位二进制数,这对于在更可靠的系统中过滤数据、执行位屏蔽和操作数字至关重要。

位级别的 AND 运算

我们首先看一下位级别的 AND 运算符。它的操作非常简单:取两个数字之间的每对相应的位,并应用 AND 运算的规则来确定该位置的位是否为 0(如果两个输入位均不为 1)或为 1(如果两个输入位均为 1)。

按位与运算示例:

 0101和0011 = 0001

使用掩码通过 AND 过滤位

在数字编程中,AND 运算符通常与位掩码选择或过滤特定位。例如,如果要检查位序列中的特定位是打开还是关闭,则可以使用仅选择该位的掩码执行 AND 运算。

位掩码示例:

 0011和0010 = 0010

在本例中,我们检查第二位是否打开。由于结果非零,我们知道该位已打开。

其他运算(如 OR 运算符)在位级工作时也有广泛的应用。

按位异或运算

XOR 运算符在低级编程中具有最有用的功能之一,它允许不使用临时变量在两个变量之间交换值。这个技巧称为 XOR 交换,非常高效,并且利用了 XOR 运算符的真值表。

异或交换示例:

 a = a 异或 bb = a 异或 ba = a 异或 b

执行完这三个操作后,值
a
y
b
它们将被交换而无需使用第三个变量。

按位移位和循环

最后,操作移位y轮换它们允许将数字的位向右或向左移动。这些操作在许多领域都很有用,例如嵌入式系统中的密码学和数据操作。

逻辑左移相当于将数字乘以 2,而逻辑右移相当于将数字除以 2。

通过进位循环,从一侧输出的位从另一侧返回,这对于某些加密算法和特定硬件很有用。

最终,理解这些操作是在需要直接操作位的领域(例如低级编程、嵌入式系统开发或数字硬件设计)高效工作的关键。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号