java位运算符

(1)与(&) 规律:两个操作数中位都为1,结果才为1,否则结果为0

 int a =10;
 int b =11;
 System.out.println("a 和b 与的结果是:"+(a&b))

 运行结果---> 10

 分析:     10 转换成二进制就是 1010
           11 转换成二进制就是 1011
           计算结果为   1010 ---》10

(2)非(~)规律:如果位为0,结果是1,如果位为1,结果是0

 int a =10;
 System.out.println("a 和b 与的结果是:"+(~a))

 运行结果---> 5

 分析:     10 转换成二进制就是 1010
           计算结果为   101 ->5

(3)或(|)规律:两个位只要有一个为1,那么结果就是1,否则就为0

 int a =10;
 int b =11;
 System.out.println("a 和b 与的结果是:"+(a|b))

 运行结果---> 11

 分析:     10 转换成二进制就是 1010
           11 转换成二进制就是 1011
           计算结果为   1011 ---》11

(4)异或(^)两个操作数的位中,相同则结果为0,不同则结果为1

 int a =10;
 int b =11;
 System.out.println("a 和b 与的结果是:"+(a&b))

 运行结果---> 1

 分析:     10 转换成二进制就是 1010
           11 转换成二进制就是 1011
           计算结果为   0001 ---》1

二进制转换十进制快速的方式:

记以下排列,其实很Easy了,从右往 左,依次是前一个数的2倍:
256      128      64       32      16      8        4         2         1



随便写个数字比如48

48 = 32 + 16,所以在32 和 16所在的位置为1,其余为0,

转为2进制就是

256    128    64  32  16  8   4   2   1

0      0       0    1    1   0   0   0   0



二进制转十进制就更简单了,

比如随便写的一串 01111101

先写上 :  0        1          1        1         1         1          0         1

然后填充 128      64        32       16        8          4          2          1



十进制为 64+32+16+8+4+1=125
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值