明经通道 AutoLISP 函数  
Boole
 

用作一个通用的按位逻辑运算函数

(Boole operator int1 [int2 ...]) 

参数

operator

0 和 15 之间的整数,代表 16 种可能的双变量布尔函数。

int1, int2...

整数。

请注意 Boole 可以接受单一整数参数,但结果不可预料。

后续的整数参数将根据函数和如下真值表逐位(逻辑上)组合在一起:

布尔真值表

Int1

Int2

操作位

0

0

8

0

1

4

1

0

2

1

1

1

参数 int1 的每一位与参数 int2 的对应位相匹配,指定真值表中的某一行。运算结果的该位可能是 0 或 1,这取决于真值表中这一行所对应的操作位的设置情况。

如果相应操作位和真值表一致,则结果位为 1;否则结果位为 0。operator 参数的某些取值等效于标准布尔运算 AND(与)、OR(或)、XOR(异或)和 NOT(非)。

Boole 函数的位值

运算符

运算

结果位为 1 的条件

1

AND

两个输入位均为 1 

6

XOR

两个输入位仅有一个为 1 

7

OR

有一个或两个输入位为 1 

8

NOR

两个输入位均为 0(1 的补)

返回值

整数。

示例

下列代码进行数 12 和 5 的逻辑与 (AND) 运算:

命令: (Boole 1 12 5)

4

下列代码进行数 6 和 5 的逻辑异或 (XOR) 运算:

命令: (Boole 6 6 5)

3

也可以使用 operator 的其他值来执行没有标准名的其他布尔运算。例如,如果 operator 是 4,那么只有在 int2 的位为 1,而 int1 
的对应位为 0 时,其结果位才为 1,因此:

命令: (Boole 4 3 14)

12

明经通道 版权所有 未经许可 不得传播

 评论