java移位运算
int A=60;//(即二进制00111100)
有符号数移位
“<<” 按位左移运算符, 左操作数按位左移右操作数指定的位数,将该数乘以2^n,n为移位的位数。
A << 2 //得到240,将00111100向左移两位,得到 1111 0000,即将60*2^2=240
“>>” 按位右移运算符。左操作数按位右移右操作数指定的位数,即将该数除以2^n,n为移位的位数。
A >> 2 //得到15,将00111100右移两位,得到 1111,即60/(2^2)=15;
无符号数移位
“>>>” 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充,原理与前面相同,但这是无符号数的操作。
A>>>2 //得到15,将00111100右移两位,并在前面移动空位补零,得到0000 1111,60/(2^2)=15;