4、位运算符 >> ^ ~ & |

本文详细解析了按位与(&)、按位或(|)、按位异或(^)和位操作符的原理,通过1和3的二进制示例演示运算过程,并介绍左移(<<)和右移(>>)在Java中的应用。重点讲解了溢出和符号扩展在位移操作中的影响。
摘要由CSDN通过智能技术生成
  1. & 按位与
    1 & 3的结果为1
    来看看它的怎么运行的:
    1的二进制表示为 0 0 0 0 0 0 1
    3的二进制表示为 0 0 0 0 0 1 1
    根据 & 的规则 得到的结果为 0 0 0 0 0 0 0 1,十进制表示就是1
  2. |按位或
    1 | 3 的结果为3
  3. ^按位异或
    ^运算符跟 | 类似,但有一点不同的是 如果两个操作位都为1的话,结果产生0
  4. ~取反
    ~是对位求反 1变0, 0变1
  5. 左移<<和右移>>
运算符含义
<<左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)
>>"有符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1.

<< 向左移动 而 >> 向右移动,超过的位将丢失,而空出的位则补0
如 0 1 0 0 0 0 1 1(十进制67) 向左移动两位67<<2将变成
0 0 0 0 1 1 0 0 (十进制12)
当然如果你用java代码写,由于是32位,不会溢出,结果是268
向右移动两位67>>2则是
0 0 0 1 0 0 0 0(十进制16)
任何小数 把它 >> 0可以取整
如3.14159 >> 0 = 3;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值