[解決済み] (number & 1) == 0 "というブール値の意味は何ですか?
質問
CodeReviewについて 私はコードの作業ピースを投稿し、それを改善するためのヒントを求めました。私が得た 1 つは、ArrayList が偶数のインデックスを持つかどうかをチェックするためにブール型メソッドを使用することでした (これは必須です)。これは提案されたコードでした。
private static boolean isEven(int number)
{
return (number & 1) == 0;
}
私はすでにその特定のユーザーに多くの助けを求めたので、私はSOコミュニティに助けを求める時だと決めました! 私はこれがどのように動作するかを本当に理解していません。メソッドが呼び出され、パラメータとしてArrayListのサイズを取ります(すなわち、ArrayListは10個の要素を持ち、number = 10です)。
私は、単一の
&
が number と 1 の両方の比較を実行することは知っていますが、その後が分からなくなりました。
読み方としては、もし
number == 0
と
1 == 0
. 私は前者が真実でないことを知っているし、後者は明らかに意味をなさない。誰か私を助けてもらえますか?
編集:誰かが疑問に思っている場合に備えて、コードが動作することを追加する必要があります。
どのように解決するのですか?
"&" がビット演算であることに留意してください。 あなたはおそらくこのことに気づいているでしょうが、質問の仕方からすると、私にはまったくわかりません。
とはいえ、理論的には、ある int があり、それは 1 と 0 の連続によってビットで表現することができます。 たとえば
...10110110
2進数では、基本が2なので、ビット版の数値が0で終わるときは必ず偶数で、1で終わるときは奇数です。
よって、上記に対して1とのビット単位の&を行うと、以下のようになります。
...10110110 & ...00000001
もちろん、これは0なので、元の入力は偶数だったと言えます。
あるいは、奇数について考えてみましょう。 例えば、上で持っていたものに1を足してみましょう。 すると
...10110111 & ...00000001
は1に等しく、したがって0には等しくない。 ほらね。
関連
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] ブーリアン値を格納するために使用するMySQLデータ型
-
[解決済み] シンクロナイズド」とはどういう意味ですか?
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
Jsoup-Crawlingの動作
-
java.sql.SQLException: 結果セットの開始前
-
Junitのユニットテストエラー
-
Java基礎編 - オブジェクト指向
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
テストが空であるかどうかを判断するためのオプションの処理
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。
-
[解決済み] Git で、2 つの日付の間に発生したすべてのコミットの diff を取得するにはどうすればよいですか?