2011-04-27 80 views

回答

6

这是一个左移操作。如果您有:

a << b 

其中ab都是整数类型(字符,短,长,等等),然后在a位左移b地方用零填充在右侧。换句话说,a乘以2^b

实施例:

12 << 3 

12 (decimal) = 00001100 (binary) 

左移位3个地方:

00001100 becomes 01100000 

它是96(其是12 * 812 * 2^3

+1

推论:'<< 0'没有任何效果。 – joce 2011-04-27 03:06:15

1

它意味着向左移位0x0001数字0位。在那个特定的情况下,它什么都不做。

例如,如果是(0x0001 << 4),则0x0001将变为0x0010。向左移动的每个位置就像数字乘以2.

+0

所以,'缬氨酸&(0×0001 << 1)'意味着将bit1向左移动并且使用Val操作? – 2011-04-27 01:12:14

+0

不,这意味着将0x0001移位一位,因此它变为0x0002。 – 2011-04-27 01:13:45

+0

@Nano:是的,和'Val&2'一样。 – Potatoswatter 2011-04-27 01:14:25