我知道AND这个词定义了二进制的and
......但是什么定义了逻辑and
?
我知道AND这个词定义了二进制的and
......但是什么定义了逻辑and
?
同样的单词AND
也用于逻辑and。但是建议AND
的两个输入值为格式正确的标志,其中true和false由两个值表示:所有位设置为(-1)和所有位未设置(0)。除了这些值之外的其他值可能会像在C语言中一样起作用,但可能导致微妙的错误。
所有比较运算符都返回格式正确的标志,但例如-
不会。以下表达式求值为false (0)。
7 5 - 7 3 - AND
AND
会获取位模式 100 和 010。结果为0(因为它进行了按位 与 运算)。
参考资料:
位运算 AND 是针对 64 位值的按位与操作。当然,这些运算符与掩码一起使用效果很好。但如果这些值都是全 1 或全 0,则结果也是全 1 或全 0(位运算 OR 和 XOR INVERT 操作同理)。
Forth 中的布尔标志为全 1 或全 0。因此,如果输入是布尔标志,则 AND、OR、XOR 和 INVERT 的输出也是布尔类型,这些运算符可以用于代表布尔运算符。请注意,像 = < 0= 这样的操作会产生布尔标志。
+ 的情况与之相同。因为整数被定义为二补数,所以 +(加)可用于有符号和无符号数字的加法。因此,没有单独的名称来表示整数的无符号加法。