-2

Google に伝える前に、Google は「<<」文字を検索しないことに注意してください。

私は以下を見つけました:

データはバイト配列です。

int ResultChannel = データ[1] + (データ[2] << 8)

<< はどのように機能しますか?

4

3 に答える 3

6

左にシフト。

C に影響を受けた言語では、左シフト演算子と右シフト演算子はそれぞれ「<<」と「>>」です。シフトする桁数は、シフト演算子の 2 番目の引数として指定されます。例えば、

x = y << 2;

y を 2 ビット左にシフトした結果を x に代入します。

于 2013-03-03T14:02:05.270 に答える
2

<< は左シフト演算子です

左シフト演算子 (<<) は、最初のオペランドを 2 番目のオペランドで指定されたビット数だけ左にシフトします。2 番目のオペランドの型は、int、または int への事前定義された暗黙的な数値変換を持つ型である必要があります。

static void Main()
{
    int i = 1;
    long lg = 1;
    // Shift i one bit to the left. The result is 2.
    Console.WriteLine("0x{0:x}", i << 1);
    // In binary, 33 is 100001. Because the value of the five low-order 
    // bits is 1, the result of the shift is again 2. 
    Console.WriteLine("0x{0:x}", i << 33);
    // Because the type of lg is long, the shift is the value of the six 
    // low-order bits. In this example, the shift is 33, and the value of 
    // lg is shifted 33 bits to the left. 
    //     In binary:     10 0000 0000 0000 0000 0000 0000 0000 0000  
    //     In hexadecimal: 2    0    0    0    0    0    0    0    0
    Console.WriteLine("0x{0:x}", lg << 33);
}
于 2013-03-03T14:02:58.220 に答える
2

ビットシフト演算子です。

ビットを左にシフトします。

例: 5 << 3 は、5 を左に 3 つシフトした値を返します。2 進数の 5 は次のとおりです。

00000101

そして、その 3 つの場所を左にシフトすると、次のようになります。

00101000

これは40です。

于 2013-03-03T14:03:43.107 に答える