AND ワードがバイナリを定義することは知っていand
ますが、論理を定義するものは何and
ですか?
2 に答える
同じ単語 ,が論理andAND
にも使用されます。ただし、 への 2 つの入力値は、整形式の flagsにすることをお勧めします。trueとfalseは、ビットがすべて設定されている (-1) とビットがすべて設定されていない (0) の 2 つの値で表されます。これら以外の値は (C のように) true として機能しますが、微妙なエラーにつながる可能性があります。AND
すべての比較演算子は整形式のフラグを返しますが、たとえばそうで-
はありません。以下は false (0) と評価されます。
7 5 - 7 3 - AND
AND
ビット パターン 100 および 010 を取得します。結果は 0 です (ビットごとのand と同様)。
参考文献:
- Forth のビット操作、Forthの学習の一部。
- Starting Forthの第 4 章のセクション「ちょっとした論理」。
4 番目の AND は、64 ビット値に対するビット単位の AND です。もちろん、これらの演算子はマスクを使用しても問題なく機能します。ただし、これらの値がすべて 1 またはすべて 0 の場合、結果もすべて 1 またはすべて 0 になります (ビット単位の OR および XOR INVERT 演算についても同様です)。
Forth のブール値フラグは、すべて 1 またはすべて 0 です。したがって、入力がブール フラグの場合、AND OR XOR INVERT の出力もブール値であり、これらの演算子を使用してブール演算子を表すことができます。= < 0= のような演算はブール値のフラグになることに注意してください。
+でも状況は同じです。整数は 2 の補数として定義されるため、+ (プラス) は符号付きの数値にも符号なしの数値にも使用できます。そのため、整数の符号なし加算に別の名前はありません。