A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mzh901024 中级黑马   /  2013-8-19 20:55  /  981 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

uint  m=4294967295;
uint  t;
t=m<<8;
Console.WriteLine(t);
Console.ReadLine();
运行的结果为4294967040

.如果写成
t=m>>16
运行结果为65535
上面的两种结果都是怎么运算的?

1 个回复

倒序浏览
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次方了

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马