3

これは、優れた1プログラマーのほとんどにとっては些細なことだと思いますが、私はtrueand false2を使用したプログラミングに慣れているため、0と1に遭遇したときに、どちらが真を意味し、どちらが偽を意味するかを思い出せません。

助言がありますか?

1良い:もちろん、Cを知っている人を意味します:)
2ご想像のとおり、私はJava開発者です;)

4

11 に答える 11

9

ニーモニックは「これにはどれだけの真実があるのか​​」です。ゼロ整数はゼロトゥルースを意味します。それ以外はゼロ以外の真実です。:)

于 2009-02-16T19:14:34.183 に答える
4

あなたが本当にそれで多くの問題を抱えているなら、私は言語を使ってそれを抽象化します.

例えばCで

#define TRUE 1
#define FALSE 0

一般的に、とにかくコード内に定数を配置することは避けます。

検討、

if(my_var == TRUE)

とは対照的に、

if(my_var == 1)

ただし、ここでも、正しいことをテストしていることを確認する必要があります。

if(my_var != FALSE)

より多くのケースをキャッチします。

乾杯!

キリスト教徒

于 2009-02-16T19:43:19.027 に答える
4

机の横の壁にポストイットを貼っているだけの同僚がいます。

偽 = 0
真 != 0

于 2009-02-16T19:19:50.473 に答える
3

"大野!"
(ああ == 0)

于 2009-02-16T19:22:59.967 に答える
3

これは、シェル (sh、bash) では true が 0 で false が 1 であるという事実によって複雑になります。

$真
$ エコー $?
0
$偽
$ エコー $?
1
于 2009-02-16T19:35:14.677 に答える
3

日用品の電源スイッチは、オフが丸、オンが線になっているのをご存知ですか?

それらをリンクするのはそれほど簡単ではありません。

オフ = 円 = ゼロ = 偽

オン = ライン = 1 = 真

于 2009-02-16T19:59:36.430 に答える
2

「nothing==false」、「something==true」を覚えておいてください

于 2009-02-16T19:14:39.923 に答える
2

ニーモニックはありません。ハードウェアのバックグラウンドがある場合は、さらに複雑になります。しかし、プログラマーの場合は、次の質問をしてください。

ビットはセットされていますか?

答えは真か偽かのどちらかであり、結果です。ビットが設定されていないのは 0 (符号付き整数であっても) のみです。

-アダム

于 2009-02-16T19:17:52.443 に答える
1

との両方にマップしOnますOff。ほとんどのプログラマーは両方のセットを同じ方法でマップすると思います。1/trueは両方とも「オン」になり、0/falseは両方とも「オフ」になります。

于 2009-02-16T19:13:59.580 に答える
1

言語によって異なります。

  • C :( 0 ? "never happens" : "false")( 1 ? "true" : "never happens")

  • RubyELisp :0との両方1が true

  • bash (またはcmd.exe ):trueコマンド (coreutils から) は0ステータス コードでfalse終了し、コマンドはゼロ以外のステータス コードで終了します。

現代の人気のあるプログラミング言語の多くは、強力な C の遺産を持っているため、0false および1(またはゼロ以外の数値) を true と見なします。

ブール値にニーモニックを使用しないでください。言語のイディオムを使用して真偽をテストしてください。

于 2009-02-16T20:47:31.057 に答える
0

愛 c - 嘘を増やすことはできないからです。:)

于 2009-02-16T19:38:20.053 に答える