📜  LISP 中的位运算符(1)

📅  最后修改于: 2023-12-03 15:02:45.567000             🧑  作者: Mango

LISP 中的位运算符

在LISP编程语言中,有多种位运算符可用于操作整数类型变量的每个位。下面将介绍LISP中的几个重要的位运算符及其运算规则。

AND

AND运算符用于将两个整数的所有对应位进行逻辑与运算,只有当两个位都为1时,结果位才为1。示例代码如下:

(and 5 3) ;返回1

上述代码将5和3进行与运算,5的二进制表示为101,3的二进制表示为011,所以运算结果为001,即1。

OR

OR运算符用于将两个整数的所有对应位进行逻辑或运算,只有当两个位都为0时,结果位才为0。示例代码如下:

(or 5 3) ;返回7

上述代码将5和3进行或运算,5的二进制表示为101,3的二进制表示为011,所以运算结果为111,即7。

XOR

XOR运算符用于将两个整数的所有对应位进行异或运算,即相同为0,不同为1。示例代码如下:

(xor 5 3) ;返回6

上述代码将5和3进行异或运算,5的二进制表示为101,3的二进制表示为011,所以运算结果为110,即6。

NOT

NOT运算符用于将整数的每个位进行逻辑非运算,即1变为0,0变为1。示例代码如下:

(not 5) ;返回-6

上述代码将5进行非运算,5的二进制表示为101,所以运算结果为010,再变为负数就是-6。

左移

左移运算符用于将整数的所有二进制位都向左移动一定数量的位。示例代码如下:

(shl 5 2) ;返回20

上述代码将5进行左移2位,即将5的二进制表示101向左移动2位变为10100,所以运算结果为20。

右移

右移运算符用于将整数的所有二进制位都向右移动一定数量的位。示例代码如下:

(shr 20 2) ;返回5

上述代码将20进行右移2位,即将20的二进制表示10100向右移动2位变为101,所以运算结果为5。

以上就是LISP中的几个常用位运算符,掌握这些运算符可以极大地拓展编程的功能,提高编程语言的可玩性。