5

Forth コード

7 3 > . (7 > 3)

を返しますが-1、私がこれまでに使用した他のすべての言語は1true のフラグとして使用します。どうしてこれなの?この違いの原因は何ですか?

4

3 に答える 3

19

and-1 はすべてのビット セットであり、 、ornot、 ...などの単語が論理演算子とビット演算子の両方として機能するという利点があります(C を&&||!、... 対&|~、 ... と言うのとは対照的に)。

于 2014-05-24T16:49:00.883 に答える
5

1994年の標準に従って:

フラグ フラグは、true または false の 2 つの論理状態のいずれかを持つことができます。算術オペランドとしてフラグを使用するプログラムには、環境依存性があります。標準ワードによって返される true フラグは、すべてのビットが設定された単一セル値です。標準ワードによって返される偽のフラグは、すべてのビットがクリアされた単一セル値です。

そうtrueではなく-1、すべてのビットが設定されています — ビットが設定されていないことの論理的な反対です。特定の環境では、設定されているすべてのビットは です-1。おそらく、コンピューターが 2 の補数演算を使用しているためです。しかし、Forth を実行するために必要なわけではなく、したがって である必要もありtrueません-1

于 2014-05-23T15:29:50.553 に答える