【问题标题】:Logical AND in Forth?Forth 中的逻辑与?
【发布时间】:2011-04-21 20:50:33
【问题描述】:

我知道 AND 字定义了二进制 and...但是什么定义了逻辑 and

【问题讨论】:

    标签: keyword logical-operators forth


    【解决方案1】:

    相同的字,AND,也用于逻辑。但是AND的两个输入值建议是well-formed flagstruefalse 由两个值表示,bits all set (-1) 和 bits all unset (0)。除了这些值之外的其他值可能会作为 true(如在 C 中),但可能会导致细微的错误。

    所有比较运算符都返回格式良好的标志,但例如- 不会。以下计算结果为假 (0)。

    7 5 - 7 3 - AND
    

    AND 获取位模式 100 和 010。结果为 0(就像按位 一样)。

    参考资料:

    1. Bit Manipulations in Forth逐点学习的一部分。
    2. Starting ForthChapter 4 中的“一点逻辑”部分。

    【讨论】:

    • 不知道这是否有效,但位模式 0xFF00 和 0x00FF 具有按位和 0x0000 但逻辑和真(因为两者都是非零)
    • @TokenMacGuy:谢谢!我一直在寻找这样一个例子。我已经更新了答案。
    【解决方案2】:

    Forth AND 是对 64 位值的按位与。当然,这些操作员可以很好地使用口罩。但如果这些值全为 1 或全为零,则结果也全为 1 或全为零(按位 OR 和 XOR INVERT 操作也是如此。)。

    Forth 中的布尔标志全为 1 或全为 0。因此,如果输入是布尔标志,则 AND OR XOR INVERT 的输出也是布尔值,因此这些运算符可用于表示布尔运算符。请注意,像 =

    情况与 + 相同。因为整数被定义为二补码,+(加号)可用于有符号数和无符号数。所以整数的无符号加法没有单独的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 2021-03-03
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多