java中的运算符

java中的运算符

逻辑运算

+

-

*

/

%

&&

||

!

<

>

==

>=

<=

位运算

按位与(&)

  • 如果两个二进制位上的数都是1,那么运算结果为1,其他情况运算结果均为0
  • 示例:1 & 1 = 1、1 & 0 = 0、 1 & 0 = 0、 0 & 0 = 0

按位或(|)

  • 两个二进制位上的数字如果都为0,那么运算结果为0,否则运算结果是1

  • 示例:0 | 0 = 0、0 | 1= 1、1 | 0 = 1、 1 | 1 = 1

按位异或(^)

  • 两个二进制位上的数字如果相同,则运算结果为0;如果两个二进制位上的数字不相同,则运算结果为1
  • 示例: 1 ^ 0 = 1、 0 ^ 1 = 1、1 ^ 1 = 0、0 ^ 0 = 0

左移(<<)

  • 表示二进制左位移,不分正负数,低位补0。(等价于十进制数值乘以2的N次方,N是位移的量)
  • 示例:0000 0101<<3 = 0010 1000

右移(>>)

  • 表示右移,如果该数为正,则高位补0,若为负数,则高位补1。(带符号右移也具有”类似”除以2的N次方的效果,N是位移量)
  • 对于任何一个byte、short或者int类型的数据而言,带符号右移31位之后,得到的必然是0或者是-1。
    对于long类型的数据而言,带符号右移63位之后,得到的也必然是0或者是-1
  • 示例:0001 0100 >> 2 = 0000 0101

无符号右移(>>>)

  • 无符号右移在二进制串移动之后,空位由0来补充,与符号位是0还是1毫无关系

取反(~)

  • 对每个二进制位进行取反操作,所谓取反就是原来二进制位上如果是0,那么就变成1,反之,如果原来二进制位上是1,那么就变为0
  • 示例:~ 101 = 010、~ 11110 = 00001

二进制

计算机在任何情况下都只能识别二进制

计算机在底层存储数据的时候,一律存储的是“二进制的补码形式”。计算机采用补码形式存储数据的原因是:补码形式效率最高

二进制码

  • 原码
  • 反码
  • 补码

拓展

  • 正数

  • 对于一个正数来说:二进制原码、反码、补码是同一个,完全相同

  • 负数

原码反码补码关系如下:
对应的二进制原码:10000001(首位是符号位,1表示负号)
对应的二进制反码:11111110(符号位不变,其它位取反)
对应的二进制补码:11111111(反码+1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z先生09

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值