c#位移符号
在这之前先复习一下二进制转换,"1010" = 21 + 23 = 10;
再复习一下十进制转二进制(这个和下面没关系,纯粹的复习,毕竟我容易忘记):
比如说13 = 1101 (倒着来)
13 / 2 = 6 ...1
6 / 2 = 3 ... 0
3 / 2 = 1 ... 1
1 / 2 = 0 ... 1
好了,进入正题:
">>"或者"<<"这样的符号叫位移运算符,就是把数据转成2进制数以后向左或者向右移动n位。
比如 1010 << 2 = 1000,高位丢失,低位0补充;
1010 >> 2 = 0010,右移相反。
对整数进行位移运算相当于"<<"相当于乘,左移n位,等于乘上了2的n次幂; ">>"相当于除,右移n为相当于除以2的n次幂。
下面上代码:
class Program { static void Main(string[] args) { Console.WriteLine(15 >> 2); Console.WriteLine(15 << 2); } }
结果:
那么为什么要用位移运算符呢?原因是运算会快一点。