首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

java 位运算符的有关问题

2012-10-15 
java 位运算符的问题int a32结果是:12;为什么?是怎么执行int a32结果是:0; 为什么?是怎么执行的[

java 位运算符的问题
int a=3<<2;
结果是:12;为什么?是怎么执行

int a=3>>2;
结果是:0; 为什么?是怎么执行的

[解决办法]
X(B)代表二进制

3 << 2 代表

0000000000000011(B) 向左移两位,得到
0000000000001100(B) = 8 * 1 + 4 * 1 + 2 * 0 + 1 * 0 = 12

同理,15 << 3
15 = 8 + 4 + 2 + 1
0000000000001111(B) 向左移3位,得到
0000000001111000(B) = 64 * 1 + 32 * 1 + 16 * 1 + 8 * 1 + 4 * 1 + 2 * 0 + 1 * 0 = 120

3 >> 2 代表向右移,但最高位(符号位)不动
0000000000000011(B)向右移两位,得到
0000000000000000(B) = 0

热点排行