您的位置:首页 > 编程语言 > Java开发

java基础 - 位运算符

2016-03-22 10:48 302 查看
package concurrentMy;

/**
*
* (位运算符)
*
* <p>
* 修改历史:                                            <br>
* 修改日期            修改人员       版本             修改内容<br>
* -------------------------------------------------<br>
* 2016年3月22日 上午10:13:57   user     1.0        初始化创建<br>
* </p>
*
* @author        Peng.Li
* @version        1.0
* @since        JDK1.7
*/
public class ConcurrentHashMapTest {

public static void main(String[] args) {

int a = 60; /* 60 = 0011 1100 */
int b = 13; /* 13 = 0000 1101 */
//11 1100
System.out.println(Integer.toBinaryString(a));
//1101
System.out.println(Integer.toBinaryString(b));

//按位取与,两个数,只要一个数为0,结果为0
int c = 0;
c = a & b;       /* 12 = 0000 1100 */
System.out.println("a & b = " + c );
//1100
System.out.println(Integer.toBinaryString(c));

//按位运算,或 两个数只要一个数为1,结果为1
c = a | b;       /* 61 = 0011 1101 */
System.out.println("a | b = " + c );

// 按位异或操作符,两个操作数的某一位不相同时候结果的该位就为1。
c = a ^ b;       /* 49 = 0011 0001 */
System.out.println("a ^ b = " + c );

//按位补运算符翻转操作数的每一位。
c = ~a;          /*-61 = 1100 0011 */
System.out.println("~a = " + c );
//按位右移运算符。左操作数按位右移右操作数指定的位数。
c = a << 2;     /* 240 = 1111 0000 */
System.out.println("a << 2 = " + c );
//按位右移运算符。左操作数按位右移右操作数指定的位数。
c = a >> 2;     /* 15 = 1111 */
System.out.println("a >> 2  = " + c );
//按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。
c = a >>> 2;     /* 15 = 0000 1111 */
System.out.println("a >>> 2 = " + c );

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: