C#移位运算符小节

左移运算符(<<)

将第一个操作数向左移动第二个操作数指定的位数,空出的位置补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

评论: 0 | 引用: 0 | 查看次数: 5448
发表评论
登录后再发表评论!