【发布时间】:2011-04-21 20:50:33
【问题描述】:
我知道 AND 字定义了二进制 and...但是什么定义了逻辑 and?
【问题讨论】:
标签: keyword logical-operators forth
我知道 AND 字定义了二进制 and...但是什么定义了逻辑 and?
【问题讨论】:
标签: keyword logical-operators forth
相同的字,AND,也用于逻辑和。但是AND的两个输入值建议是well-formed flags; true 和 false 由两个值表示,bits all set (-1) 和 bits all unset (0)。除了这些值之外的其他值可能会作为 true(如在 C 中),但可能会导致细微的错误。
所有比较运算符都返回格式良好的标志,但例如- 不会。以下计算结果为假 (0)。
7 5 - 7 3 - AND
AND 获取位模式 100 和 010。结果为 0(就像按位 和 一样)。
参考资料:
【讨论】:
Forth AND 是对 64 位值的按位与。当然,这些操作员可以很好地使用口罩。但如果这些值全为 1 或全为零,则结果也全为 1 或全为零(按位 OR 和 XOR INVERT 操作也是如此。)。
Forth 中的布尔标志全为 1 或全为 0。因此,如果输入是布尔标志,则 AND OR XOR INVERT 的输出也是布尔值,因此这些运算符可用于表示布尔运算符。请注意,像 =
情况与 + 相同。因为整数被定义为二补码,+(加号)可用于有符号数和无符号数。所以整数的无符号加法没有单独的名称。
【讨论】: