C#移位运算符小节 (1)
左移运算符(<<)
将第一个操作数向左移动第二个操作数指定的位数,空出的位置补0。例如:1100100<<2=110010000,1100100左移两位后为 1100100口口,补0后为110010000。
右移运算符(<<)
将第一个操作数向右移动第二个操作数所指定的位数,空出的位置补0。例如:1100100>>2=0011001,1100100右移两位后为 口口11001,补0后为0011001。
比较有意思的东西
10进制中左移一位相当于是添加一个0,即扩大了10的一次方倍,左移两位则是添加两个0,即扩大了10的二次方倍;同理,2进制左移一位也是添加了一个0,即扩大了2的一次方倍,左移两位则是添加两个0,扩大了2的二次方倍,那么就有下边的关系:
n<<1,相当于 n*2
n<<2,相当于 n*4
n<<3,相当于 n*8
n<<4,相当于 n*16
同理,右移则表述为:
n>>1,相当于 n/2
n>>2,相当于 n/4
n>>3,相当于 n/8
n>>4,相当于 n/16