[解決済み] Javaでvalue & 0xffは何をするのですか?
2022-03-07 19:55:41
質問
次のようなJavaコードがあります。
byte value = 0xfe; // corresponds to -2 (signed) and 254 (unsigned)
int result = value & 0xff;
印刷すると254になるのですが、このコードがどのように動作するのかが全くわかりません。もし
&
演算子は単純にビット演算ですが、なぜバイトではなく整数になるのでしょうか?
どのように解決するのですか?
設定する
result
の8ビットを(符号なし)値に置き換えたものです。
value
の下位8ビットに
result
.
このようなものが必要な理由は
byte
は、Javaでは符号付きの型です。もし、そのまま書いたら
int result = value;
では
result
という値で終わります。
ff ff ff fe
ではなく
00 00 00 fe
. さらに微妙なのは
&
に対してのみ動作するように定義されています。
int
値
1
ということで、どうなるかというと
-
value
が昇格しint
(ff ff ff fe
). -
0xff
はint
リテラル(00 00 00 ff
). -
は
&
を適用して、目的の値を得ることができます。result
.
(に変換することがポイントです)。
int
が起こる
以前
その
&
演算子が適用されます)。
1
<サブ
まあ、ちょっと違うか。その
&
演算子が動作するのは
long
の値も同様に、どちらかのオペランドが
long
. しかし
byte
. Java言語仕様のセクションを参照してください。
15.22.1
と
5.6.2
.
関連
-
[解決済み] double 型を Int 型に変換、切り捨て
-
[解決済み] Java Swingで複数のボタンに対して複数のActionListenersを追加する方法
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] int32の最大値は何ですか?
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] maven. -source 1.5ではラムダ式がサポートされていません。
-
[解決済み] Firebase クラスにシリアライズするプロパティが見つからない
-
[解決済み] プロトコルハンドラの初期化に失敗しました。
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] ORA-01654: インデックスを拡張できません。
-
[解決済み] JDBC タイプの方言マッピングがありません。1111
-
[解決済み] アニメーションGIFの表示
-
[解決済み] スリーピング中のスレッドが割り込まれ、データベースへの接続が失われる
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正
-
[解決済み】Javaでsha256で文字列をハッシュ化する方法は?