-2

在告诉我谷歌之前,请注意谷歌不会搜索“<<”字符。

我发现了以下内容:

data 是一个字节数组。

int ResultChannel = data[1] + (data[2] << 8)

<< 是如何工作的?

4

3 回答 3

6

左移。

在受 C 启发的语言中,左移运算符和右移运算符分别是“<<”和“>>”。移位的位数作为移位运算符的第二个参数给出。例如,

x = y << 2;

将 y 左移两位的结果赋给 x.

于 2013-03-03T14:02:05.270 回答
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 位的值。二进制中的五是:

00000101

如果你将这三个位置向左移动,你会得到:

00101000

这是40。

于 2013-03-03T14:03:43.107 回答