第八课_二进制的逻辑运算,计算机是如何运算的

前言

前面的课程有粉丝评论说没看懂,本id回去细看了一下,确实写得有些深奥,或者说有些混乱。可能大家刚接触,有些不习惯吧,因为我们已经十几年来只习惯十进制的计算,突然让大家丢到十进制的计算,真没那么容易。

这篇文章讲十进制的逻辑运算,这个简单,就是与、或、非。

为什么要讲这个,因为计算机的本质就是这些二进制的逻辑运算。计算机之所以用二进制,是因为受硬件条件的制约。但是即便是这么简单的0和1,照样能实现强大的功能,什么阿法狗打败国际象棋大师,人脸识别,人工智能等等,无论功能如何炫酷,到计算机底层还是01的逻辑运算实现的。

逻辑或运算

只要有一个1,运算结果就是。在汇编中用 or 表示,在C语言中用“|”表示。

第八课_二进制的逻辑运算,计算机是如何运算的_第1张图片

看上图,学过物理的应该很容易理解这个电路图,无论开关1,开关2,任何一个闭合,灯泡就会亮,当然两个都闭合那也肯定亮。

逻辑与运算

只有两个都为1时,运算结果才为1,其他情况结果都为0。在汇编中用and表示,在C语言中用“&”表示。

第八课_二进制的逻辑运算,计算机是如何运算的_第2张图片

看上面的电路图,只有开关1和开关2都闭合,灯泡才会亮,其他情况灯都不亮。

逻辑异或运算

只有两个数不同时,运算结果才为1,其他情况都为零。在汇编中用xor表示,在C语言中用“^”表示。

第八课_二进制的逻辑运算,计算机是如何运算的_第3张图片

看上面的电路图,只有开关1和开关4同时闭合、开关2和开关3同时闭合时,灯才会亮,如果只是同一边的开关闭合,那么灯是不会亮的。

异或运算在加密算法中常用。看上面的例子,在竖式中,第二个数是秘钥,把第一次运算的结果再和秘钥进行异或运算,得到的结果是原来的数。

这个式子算是程序员的花式表白了,有看明白的吗?(提示:转成十进制)

逻辑非运算

取反,是1则变成0,是0则变成1。在汇编中用not表示 ,在C语言中用“!”表示。

第八课_二进制的逻辑运算,计算机是如何运算的_第4张图片

写于2020.3.7 21:21

你可能感兴趣的:(零基础学习C/C++)