我知道AND word定义了二进制and...但是什么定义了逻辑and呢?
发布于 2010-10-08 03:47:41
同一个词AND也用于逻辑and。但AND的两个输入值建议为格式良好的标志;true和false由两个值表示,bits all set (-1)和bits all unset (0)。除了这些值之外的其他值可能都是真的(如在C中),但它可能会导致细微的错误。
所有比较运算符都返回格式正确的标志,但例如-不返回。下面的计算结果为false (0)。
7 5 - 7 3 - ANDAND得到位模式100和010。结果是0(就像它做的逐位and一样)。
参考文献:
点点滴滴学习Forth的一部分。
发布于 2015-02-10 06:24:40
第四个AND是按位计算的,取值为64位。当然,这些操作符在使用掩码时可以正常工作。但是,如果这些值全为1或全0,则结果也是全1或全0(逐位or和XOR反转操作也是如此)。
Forth中的布尔标志全为1或全为0。因此,如果输入是布尔标志,则AND OR XOR INVERT的输出也是布尔值,因此这些运算符可以用于表示布尔运算符。请注意,像=< 0=这样的操作会产生一个布尔标志。
情况与+相同。因为整数被定义为二进制补码,所以+(加号)既可以用于有符号数字,也可以用于无符号数字。因此,整数的无符号加法没有单独的名称。
https://stackoverflow.com/questions/3873456
复制相似问题