0

私がint myInt1 = 02とを持っている場合int myInt2 = 2、一般的に、それらは文字列のように比較されるのでmyInt1 == myInt2が返されますfalseか、それとも、紙の上で計算を行っている場合と同じようにコンピューターが比較して を返しtrueますか?

4

3 に答える 3

0

他の人がコメントしているように、それは文脈と言語に完全に依存します. また、データ型にも依存します ( int, float, double、一部の言語にはDecimalNSNumberなどがあります)。

ではObjective-C、2 つNSNumberの を と比較すると、通常、オブジェクトと==同様に false が返されます。この場合、 と を比較するとメモリ アドレスが比較されるため、通常は が返されます。NSNumber==false

しかし、という点ではint?ほとんどの場合、 というコード行があったとしてもint myNum = 002;、言語はおそらく先頭のゼロを気にしません。先行ゼロは、単に出力の書式設定の問題である可能性があります。たとえば、printf("%03d",myNum)printf("%d",myNum)

于 2013-10-27T04:26:12.070 に答える
0

これは、議論中のコンピューター言語に完全に依存し、(ここに示すように、プレフィックス 0 の特定のケースでは) n-- の特定の値に少なくとも依存n0nます。

とはいえ、大部分のプログラミング言語では、数値は文字列とはまったく異なる方法で扱われます。整数の「2」の概念を表現する方法がいくつかある場合、それらは一般的にすべて同等です。2とが同じだと言っているわけではありません2.0。多くの言語では、それらはまったく異なります。

于 2013-10-27T04:20:01.240 に答える
0

これは、言語の構文とセマンティクスがどのように定義されているかによって異なります。

どの言語について話しているのかは特定されていませんが、ほとんどの現代言語では数値が比較に使用されます。したがって、通常、例に入ることが期待さtrueれます。

于 2013-10-27T04:20:12.323 に答える