把要移动的数转换成2进制,右移几位就去掉右边的几位数,左移几位就在右边加几个0,
如:14右移2位:14转成二进制为1110,去掉右边的10,变成11,11转成十进制就是3;14左移2位就是111000,转成十进制就是56。
不论这个数为正数或负数。都在高位补零
例如20的二进制为 0001 0100,右移2位后为 0000 0101,则结果就为 res =5;
-20的二进制为 1110 1011,右移2位,此时高位补0,即 0011 1010,结果为 res =- 5;
public class letc { public static void main(String[] args) { int x = 3;int y = 4; System.out.println( "x & y : " + (x & y) );//与 0000 System.out.println( "x|y : " + (x | y) );//或 4二进制为0100 3|4为0111 为7 System.out.println( "x ^ y : " + (x ^ y) ); System.out.println( "x >> 1 : " + (x >> 1) ); //3的二进制 0011 右移1位 0001变成1 System.out.println( "x >> 2 : " + (x >> 2) ); // 0011 右移2位 0000变成0 System.out.println( "x << y : " + (x << y) ); //0011左移动4位 0011 0000为48 } } - - - - - - - - - - - 运行结果: x & y : 0 x| y : 7 x ^ y : 7 x >> 1 : 1 x >> 2 : 0 x << y : 48
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)