13

AND ワードがバイナリを定義することは知っていandますが、論理を定義するものは何andですか?

4

2 に答える 2

12

同じ単語 ,が論理andANDにも使用されます。ただし、 への 2 つの入力値は、整形式の flagsにすることをお勧めします。truefalseは、ビットがすべて設定されている (-1) とビットがすべて設定されていない (0) の 2 つの値で表されます。これら以外の値は (C のように) true として機能しますが、微妙なエラーにつながる可能性があります。AND

すべての比較演算子は整形式のフラグを返しますが、たとえばそうで-はありません。以下は false (0) と評価されます。

7 5 - 7 3 - AND

ANDビット パターン 100 および 010 を取得します。結果は 0 です (ビットごとのand と同様)。

参考文献:

  1. Forth のビット操作、Forthの学習の一部。
  2. Starting Forth第 4 章のセクション「ちょっとした論理」。
于 2010-10-07T19:47:41.083 に答える
0

4 番目の AND は、64 ビット値に対するビット単位の AND です。もちろん、これらの演算子はマスクを使用しても問題なく機能します。ただし、これらの値がすべて 1 またはすべて 0 の場合、結果もすべて 1 またはすべて 0 になります (ビット単位の OR および XOR INVERT 演算についても同様です)。

Forth のブール値フラグは、すべて 1 またはすべて 0 です。したがって、入力がブール フラグの場合、AND OR XOR INVERT の出力もブール値であり、これらの演算子を使用してブール演算子を表すことができます。= < 0= のような演算はブール値のフラグになることに注意してください。

+でも状況は同じです。整数は 2 の補数として定義されるため、+ (プラス) は符号付きの数値にも符号なしの数値にも使用できます。そのため、整数の符号なし加算に別の名前はありません。

于 2015-02-09T22:24:39.690 に答える