位运算和进制转换

本文主要内容来源于Java核心技术卷一

概念

位运算指的是对二进制进行的计算处理。主要有 与(&)、或(|)、异或(^)、求反(~)

  • 与运算

其特征为:“都是1的时候才是1”
如:

13 & 7 =

计算过程为:
13的二进制:1101
7的二进制: 0111
得到结果 0101 转换成10进制则是5

  • ###或运算
    其特征为:“有一位是1结果就是1”

    13 | 7

计算过程为
1101
0111
按照或运算得到结果是
1111
转化成10进制为:15

  • ###移位运算
    向左移位:<<
    向右移位:>>
    表示二进制数向左或者向右移位
    例如

    int x = 2;
    int result = x << 2;
    System.out.println(result);//8

计算结果过程如下
2的二进制为 0010
向左移位2则为 1000 ,转换成10进制则得到结果为8。

进制之间的转换

参考http://c.biancheng.net/view/1725.html

面试题

&、| 和 &&、||有什么区别?
答:
1.都可以做逻辑运算符,做逻辑运损符时,&和|的所有条件都需要执行,而&&和或的并不是所有条件都需要进行判断。例如 11 || 22 || 33 此时 11执行完毕后则不会再进行后续判断,而 11 | 22 | 3==3 则需要将所有条件都执行。
2.|和&可以做位运算符,对数据进行二进制计算。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值