C# ビット単位の左シフト (<<) 演算子

C Bitto Dan Weino Zuoshifuto Yan Suan Zi



C# プログラミングでは、ビット単位の演算子を使用してビットレベルの操作を実行できます。ビットレベルの計算は、加算、減算、乗算、除算などの算術演算を実行するときに CPU で行われます。 C# プログラミングでビット単位の操作を行うこともでき、そのプロセスは簡単です。 Bitwise 演算子は、指定された値に対して演算を実行します。シフトするビット数も指定します。 C# 言語には 6 つの Bitwise 演算子があり、そのうちの 2 つはシフト演算子です。

議論のトピックは、シフト演算子についてです。ビット単位の左シフト演算子 (<<) について詳しく説明します。シフト演算子は、名前が示すように、ビットを指定された位置から左または右にシフトします。ビットごとの左シフト演算子 (<<) を使用して、指定されたビット数だけ値を左に移動します。左シフト演算子は、int (整数)、uint (符号なし整数)、long (長整数)、および ulong (符号なし長整数) でのみ入力を受け取ります。左オペランドが異なる型に属する場合、整数型に変換されます。結果の値のデータ型は、32 ビットの制限を保持します。出力をそれより大きくすることはできません。ビット演算子は、コードを効率的かつ高速にします。さらに、精度と精度が向上します。

構文:

Operand_1 << Operand_2







最初の「Operand_1」は、左から「Operand_2」に含まれるシフト数だけシフトされた値です。記号 << は「Operand_1」を左にシフトします。



例 1:

このプログラムでは、ビット単位の左シフト演算子 (<<) が整数値に適用されます。



システムを使用する;

クラス Program_1
{
static void メイン ( ) {
int Value_0 = 3.4 ;
整数値_1 = 65 ;
整数 解像度 = 値_0 << 値_1;
Console.Write ( 「左シフトは 」 ) ;
Console.Write ( 解像度 ) ;
}
}

最初のステートメントには、2 つの整数型変数の宣言と初期化が含まれています。最初の変数は「Value_0」で、2 番目の変数は「Value_1」です。それらに格納される値は「34」と「65」です。左シフト演算子 (<<) を使用して、値 34 を左シフトします。次に、結果を保存する整数データ型を持つ別の変数を宣言します。ここでは、左シフト演算子 (<<) を Value_0 << Value_1 として使用します。この演算子は、左オペランドの値を 2 番目のオペランドで指定された値だけ左にシフトします。 「res」には、シフト演算子の出力が格納されます。この後、Console.Write() メソッドを呼び出して、「The left shift is」というテキストと、端末の「res」に格納されている結果の値を出力します。





例 2:

符号なし整数値に左シフト演算子を使用して、出力がどのように生成されるかを見てみましょう。



システムを使用する;

クラス Program_2
{
static void メイン ( ) {
uint Val_0 = 4435 ;
int Val_1 = 64 ;
ユニット 結果 = Val_0 << Val_1;
Console.Write ( 「左シフトは」 ) ;
Console.Write ( 結果 ) ;
}
}

ここでは、符号なし整数型の値に左シフト演算子を適用します。注意しなければならないことの 1 つは、コンパイラは整数値のみをシフトに使用するため、2 番目のオペランドは整数型の値でなければならないということです。

static void Main() 関数を呼び出した後、2 つの変数を宣言します。1 つは符号なし整数値「Val_0」で、もう 1 つは整数値「Val_1」です。次に、「結果」である別の符号なし整数変数を定義して、符号なし整数を左シフトした後の結果の値を保持します。左シフト後、結果は符号なしの値になるため、結果を整数型変数に格納することはできません。 「Val_0 << Val_1」ステートメントは、符号なし整数値である左オペランドを左にシフトします。符号なし整数値を生成します。最後に、Console.Write() メソッドを使用して、出力画面に「The left shift is」というテキストで結果を表示します。

例 3:

この例では、長整数値でビット単位の左シフト演算子 (<<) を使用するさまざまな方法について説明します。

システムを使用する;

クラス Program_3
{
static void メイン ( ) {
長い数値_0 = 4.5 ;
長い数値_1 = 5 ;

Console.Write ( 'long の左シフトは' ) ;
Console.WriteLine ( number_0 << 3 ) ;
Console.Write ( 'long の左シフトは' ) ;
Console.Write ( number_0 << Convert.ToInt16 ( number_1 ) ) ;
}
}

2 つの長整数型変数「number_0」と「number_1」の初期化は、最初のステートメントで行われます。 Console.Write() 関数を呼び出して、メッセージ「The left shift of long is」と結果を端末に表示します。ここでは、左シフト演算子 (<<) を適用して、最初のオペランドを最初の変数として配置し、2 番目のオペランドを整数値として配置します。コンパイラは、最初のオペランドである「number_0」を 3 だけ左にシフトし、結果を表示します。次のステートメントでは、Console.Write() メソッドを使用して画面に別のメッセージを出力します。ここでは、最初の変数「number_0」を第 1 オペランドとして使用し、2 番目の変数「number_1」を第 2 オペランドとして使用します。 2 番目のオペランドは、整数型の値でなければなりません。 Convert.ToInt16() 関数を使用して、2 番目の変数「number_1」を整数型に型キャストします。次に、コンソールに結果を表示します。

例 4:

このコードは、unsigned long 演算子で左シフトを実行した後、値を整数に割り当てる方法を示しています。

システムを使用する;

クラス Program_4
{
static void メイン ( ) {
頭番号_0 = 445 ;

Console.Write ( 'ulong の左シフトは' ) ;
Console.WriteLine ( number_0 << 8 ) ;
Console.Write ( 'ulong の左シフトは' ) ;
Console.WriteLine ( number_0 << 16 ) ;
Console.Write ( 'ulong の左シフトは' ) ;
Console.WriteLine ( number_0 << 32 ) ;

}
}

まず、「number_0」である unsigned long integer 型の変数を 1 つ宣言します。次に、Console.Write() メソッドを呼び出して、ターミナルに「The left shift of ulong is」というテキストを表示します。 「number_0」の左シフトを整数値 8 で見つけます。結果をどこにも保存する必要はありません。 Console.WriteLine() 関数は、結果をコンソールに出力します。このプロセスを 2 回繰り返して、2 番目のオペランドの値を変更します。こうすることで、長い符号なし整数型の値の左シフトを見つけることができます。しかし、結果の値を変数に保存したい場合は、結果が最初のオペランドと同じ型であるという考えを維持する必要があります。 Console.Write() と Console.WriteLine() の唯一の違いは、2 番目の関数が結果を出力し、カーソルを次の行に送信するのに対し、最初の関数は結果のみを出力し、その後でも同じ行でカーソルが点滅することです。出力を表示します。

結論

C# の Bitwise 演算子、その型、および機能について調べました。左シフト (<<) 演算子は、数値または値を特定のビット数だけ左にシフトするために適用されます。 Bitwise 演算子はコードの効率を向上させ、軽量の演算子であるためシステムに負担をかけません。私たちの CPU (コンピュータ処理装置) は、算術演算を実行するたびにビット単位で動作します。簡単に言えば、ビット単位の演算子はプログラミングにおいて重要であり、C# は左シフト演算子 (<<) がその 1 つであるすべてのビット単位の演算子をサポートしています。