在许多计算机编程语言(例如:C语言、C++语言、Java语言、JavaScript语言,Pascal语言等)中,“<<”代表左移运算符(就相当于\'shl\')。该运算符为双目运算符,结合方向为从左到右,作用是把一个整型数的所有位向左移动指定的位数,移动到左边界之外的多余二进制位会被丢弃,并从右边界移入0。
左移运算的两个操作数应为整数类型。第一个操作数是要进行移位操作的数,第二个操作数指定第一个操作数移动的位数。如果第二个操作数等于0则不发生任何移位。
应用举例:
一,问:计算表达式14 << 2的值。
答:表达式14 << 2的值为56,因为14(即二进制的00001110)向左移两位等于56(即二进制的00111000)。
二,问: 计算表达式8 >> 2的值。
答:表达式8 >> 2的值为2,因为8(即二进制的00001000)向右移两位等于2(即二进制的00000010)。
<<对二进制数左移操作,>>右移操作,还有>>>,带符号的右移操作。
来个例子吧:
16>>2
16的二进制是0000,0000,0000,0000,0000,0000,0001,0000(int是32位的。正数的首位为0,负数的首位为1)此运算符的意思是把16的二进制右 移2位,带符号,因为符号位为0,故变为…… 0000,0100。其十进制值是4。若1000,0000,0000,0000,……则移位2位后为1110,000……
看清楚了吗?
>>>
这也是右移,只不过是不带符号的右移,16为正数,右移时带不带符号都一样,故他们的数相等。
至于<<,你如法炮制便是了。