我知道AND字定义了二进制and
...但是什么定义了逻辑and
?
答案 0 :(得分:12)
同一个词AND
也用于逻辑和。但建议AND
的两个输入值为格式正确的标志; true 和 false 由两个值表示,所有设置位(-1)和所有未设置的位(0)。除此之外的其他值可能正常(如在C中),但可能会导致细微的错误。
所有比较运算符都返回格式良好的标志,但例如-
没有。以下评估为false(0)。
7 5 - 7 3 - AND
AND
得到位模式100和010.结果为0(因为它按位和)。
参考文献:
答案 1 :(得分:0)
Forth AND是64位值的逐位AND。当然这些操作员可以使用面罩。但是如果这些值都是1或全0,则结果也是全部为零或全为零(对于逐位OR和XOR INVERT操作也是如此)。
Forth中的布尔标志是全部为零或全为零。因此,如果输入是布尔标志,则AND OR XOR INVERT的输出也是布尔值,因此这些运算符可用于表示布尔运算符。请注意,操作如=< 0 =得到一个布尔标志。
情况与+相同。因为整数被定义为双补码,所以+(加号)可以用于有符号和无符号数。因此,对于无符号加法整数,没有单独的名称。