黑马程序员技术交流社区
标题:
移位运算符的疑惑
[打印本页]
作者:
mzh901024
时间:
2013-8-19 20:55
标题:
移位运算符的疑惑
uint m=4294967295;
uint t;
t=m<<8;
Console.WriteLine(t);
Console.ReadLine();
运行的结果为4294967040
.如果写成
t=m>>16
运行结果为65535
上面的两种结果都是怎么运算的?
作者:
许庭洲
时间:
2013-8-20 06:14
1. 例如int i = 1;
i = i << 2; //把i里的值左移2位
2. 1的2进制是000...0001(这里1前面0的个数和int的位数有关,32位机器,gcc里有31个0)
3. 左移2位之后变成 000... 0100,也就是10进制的4,
4. 所以说左移1位相当于乘以2,那么左移n位就是乘以2的n次方了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2