java位运算数字_Java运算符之位运算符

位运算符

dc86b7652ce98824c9cb2d77c2ea32f2.png

尹成课程资料及演示(免费)(文末有资料链接)

位运算符是针对二进制数的每一位进行运算的符号,它是专门针对数字0和1进行操作的。接下来通过一张表来展示Java中的位运算符及其用法,如表1所示。

表1 位运算符

650094825832c71346fc7bea7719e9fa.png

从表1可以看出,Java中的位运算符本质都是针对二进制数0和1进行运算的,所以,在使用位运算符时,都会先将操作数转换成二进制数的形式进行位运算,然后将得到的结果再转换成想要的进制数。

接下来通过一些具体示例对表2-10中描述的位运算符进行详细讲解。为了方面描述,下面的运算都是针对一个byte类型的数,也就是一个字节大小的数的运算,具体如下:

1.位运算符“&”是将参与运算的两个操作数以二进制数的形式进行“按位与”运算,如果相同位上的两个二进制位都为1,则该位的运算结果为1,否则为0。

例如将6和 11进行按位与运算,一个byte类型的数字6对应的二进制数为00000110,数字11对应的二进制数为00001011,具体演算过程如下所示:

00000110

&

00001011

—————————

00000010

运算结果为00000010,对应十进制数值2。

2.位运算符“|”是将参与运算的两个操作数以二进制数的形式进行“按位或”运算,如果相同位上的两个二进制位有一个值为1,则该位的运行结果为1,否则为0。

例如将6与11进行或运算,具体演算过程如下:

00000110

|

00001011

—————————

00001111

运算结果为00001111,对应十进制数值15。

3.位运算符“~”只针对一个操作数进行操作,它会对二进制形式的操作数每位进行取反操作。如果二进制位是0,则取反值为1;如果是1,则取反值为0。

例如将6进行取反运算,具体演算过程如下:

~ 00000110

—————————

11111001

运算结果为11111001,对应十进制数值-7。

4.位运算符“^”是将参与运算的两个操作数以二进制数的形式进行“异或”运算,如果相同位上的两个二进制数值相同,则值为0,否则为1。

例如将6与11进行异或运算,具体演算过程如下:

00000110

^

00001011

—————————

00001101

运算结果为00001101,对应十进制数值13。

5.位运算符“

例如一个byte类型的数字11用二进制表示为00001011,将它左移一位,具体演算过程如下:

00001011

—————————

00010110

运算结果为00010110,对应十进制数值22。

6.位运算符“>>“就是将操作数二进制形式的所有进制位向右移动指定位数。运算时,左边的空位根据原数的符号位补0或者1(原来是负数就全部补1,是正数就全部补0),右边移走的部分舍去。

例如一个byte类型的数字11用二进制表示为00001011,将它右移一位,具体演算过程如下。

00001011 >>1

—————————

00000101

运算结果为00000101,对应十进制数值5。

7.位运算符“>>>”属于无符号右移,就是将操作数二进制形式的所有二进制位不考虑正负数向右移动指定位数。运算时,左边的空位全部补0(不考虑原数正负),右边移走的部分舍去。

例如一个byte类型的数字11用二进制表示为00001011,将它无符号右移一位,具体演算过程如下:

00001011 >>>1

—————————

00000101

运算结果为00000101,对应十进制数值5。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值