码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA 按位运算符的解释

时间:2017-05-18 01:32:01      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:按位运算符 位运算 按位

按位运算符

Java定义了几个按位运算符,可以将其应用于整数类型long,int,short,char和byte。

按位运算符对位执行,并执行逐位运算。假设a = 60和b = 13; 现在以二进制格式,他们将如下 -

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a | b = 0011 1101

a ^ b = 0011 0001

a = 1100 0011

假设整数变量A保持60,变量B保持13,则 -

public class Test {

   public static void main(String args[]) {
      int a = 60;	/* 60 = 0011 1100 */
      int b = 13;	/* 13 = 0000 1101 */
      int c = 0;

      c = a & b;        /* 12 = 0000 1100 */
      System.out.println("a & b = " + c );

      c = a | b;        /* 61 = 0011 1101 */
      System.out.println("a | b = " + c );

      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 );
   }}
输出结果
a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 15
a >>> 15


总结:

&(按位和)如果二进制AND运算符存在于两个操作数中,则二进制AND运算符将对结果复制一位。(A和B)将给出12是0000 1100
(按位或)二进制OR运算符如果存在于任一操作数中,则复制一位。(A | B)将给出61,其为0011 1101
^(按位异或)二进制XOR操作符复制该位,如果它设置在一个操作数中,而不是两者。(A ^ B)将给出49,其为0011 0001
(按位称赞)二进制补码运算符是一元的,具有“翻转”位的作用。(A)将给出-61,由于有符号的二进制数,它是2 0的补码形式的1100 0011。
<<(左移)二进制左移操作符。左操作数值左移由右操作数指定的位数。A << 2将给出240是1111 0000
>>(右移)二进制右移操作符。左操作数值被右操作数指定的位移动。A >> 2将给出15是1111
>>>(零填补右移)右移零填充操作符。左操作数值右移由右操作数指定的位数,移位值用零填充。A >>> 2将给出15是0000 1111


本文出自 “逐梦路上的Man” 博客,请务必保留此出处http://meyangyang.blog.51cto.com/12906086/1926831

JAVA 按位运算符的解释

标签:按位运算符 位运算 按位

原文地址:http://meyangyang.blog.51cto.com/12906086/1926831

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!