ホームページ  >  記事  >  Java  >  Java右シフト演算子の使い方

Java右シフト演算子の使い方

DDD
DDDオリジナル
2023-10-12 11:30:361753ブラウズ

java 右シフト演算子の使用法: 1. 符号付き右シフトは、指定された桁数だけ 2 進数を右に移動し、元の数値の符号ビットに従って左側の桁を埋めます。元の数値が正の場合 元の数値が負の場合は、左側のビットをゼロで埋めます 2. 符号なし右シフトで、2 進数を指定された桁数だけ右に移動し、右側のビットをゼロで埋めますleft. ビット (元の数値の符号ビットに関係なく)。

Java右シフト演算子の使い方

Java の右シフト演算子 (>>) は、指定された桁数だけ 2 進数を右に移動するために使用され、符号はbit の左側にビット数が埋め込まれます。右シフト演算子には、符号付き右シフト (符号付き右シフト) と符号なし右シフトの 2 つの形式があります。

1. 符号付き右シフト (符号付き右シフト)

符号付き右シフト演算子は、指定された桁数だけ 2 進数を右に移動し、その符号ビットに従って 2 進数を埋めます。元の番号 左側の桁数。元の数値が正の場合は、左側に 0 ビットが埋められ、元の数値が負の場合には、左側に 1 ビットが埋められます。符号付き右シフト演算子の構文は次のとおりです。

int result = value >> num;

ここで、value は移動する 2 進数、num は移動する桁数、result は演算の結果です。

サンプル コードは次のとおりです。

int num = 10; // 要移动的二进制数
int shift = 2; // 要移动的位数
int result = num >> shift; // 有符号右移运算符的计算结果
System.out.println(result); // 输出结果为2

この例では、2 進数 10 を 2 ビット右シフトして 00001010 を取得し、その後 10 進数 2 (最終出力) に変換します。結果は2です。

2. 符号なし右シフト

符号なし右シフト演算子は、元の符号に関係なく、指定された桁数だけ 2 進数を右に移動し、左側の 0 ビットを埋めます。数値、ビット。符号なし右シフト演算子の構文は次のとおりです。

int result = value >>> num;

このうち、value は移動する 2 進数、num は移動する桁数、result は演算結果です。

サンプル コードは次のとおりです。

int num = -10; // 要移动的二进制数
int shift = 2; // 要移动的位数
int result = num >>> shift; // 无符号右移运算符的计算结果
System.out.println(result); // 输出结果为1073741821

この例では、2 進数 -10 を符号なしで 2 ビット右シフトして 001111111111111111111111111110 を取得し、10 進数 1073741821 に変換します。 、最終的な出力結果は 1073741821 です。

移動する桁数は負ではない整数でなければならないことに注意してください。そうでない場合は例外がスローされます。右シフト演算子を使用する場合、予期しない演算結果を避けるために、符号ビットとゼロビットがどのように埋められるかに特別な注意を払う必要があります。

以上がJava右シフト演算子の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。