我在网上找了好多的资料还是没有找到啊,多谢大牛的指点啊~~ 小弟不胜感激~小弟有两句话不明白啊:
protected int value;
value |= (1 << 8);//第一句话,不明白含义
value |= (1 << 18) | (1 << 20) | (1 << 22) | (1 << 24) | (1 << 28);//第二句话,不明白含义
麻烦给指点一下啊~~
protected int value;
value |= (1 << 8);//第一句话,不明白含义
value |= (1 << 18) | (1 << 20) | (1 << 22) | (1 << 24) | (1 << 28);//第二句话,不明白含义
麻烦给指点一下啊~~
1 << 2 == 4
1 << 3 == 8...
其实就是:
value = value | (1 << 8); // | 是位运算符:或; <<是位运算符左移,每次左移相当于乘2
也即相当于:
value = value | 0x100;
第二句话也是类似的了,没啥特殊差异,自行理解吧。
value = value | (1<<8);//是一样的
1<<8表示1左移8位,就是100000000=256,“|”是逻辑“或”运算。
看了我3楼的解释还不理解么?value |= (1 << 8);//第一句话,不明白含义
其实就是:
value = value | (1 << 8); // | 是位运算符:或; <<是位运算符左移,每次左移相当于乘2
也即相当于:
value = value | 0x100;
如果: value 初始值为 1;
value |= (1 << 8);
结果:value = 0x100 | 0x1 = 0x101 = 257如果: value 初始值为 15;
value |= (1 << 8);
结果:value = 0x100 | 0xF = 0x10F = 271如果: value 初始值为 256;
value |= (1 << 8);
结果:value = 0x100 | 0x100 = 0x100 = 256
看来楼主对 位运算不太熟悉。
value |= (1 << 8);//第一句话,不明白含义
目的是value的第八位 置1