Java 位运算符

Java 位运算符

一直在写增删改查,今天接触到二进制数运算的时候感觉有点陌生了,所以今天复习一下。

Java中位运算符主要用来对操作数二进制的位进行运算。按位运算表示按每个二进制位(bit)进行计算,其操作数和运算结果都是整型值。

一、二进制与十进制转换练习

1.1、十转二

十进制数10转为二进制

方法一:

image-20210502182022455

10除以2 得5 余数为 0

再拿刚才的5除以2得2 余数为1

2除以2得1 余数为0

1除以2 直接余数为1

那么就为1010

方法二(推荐)、

10 
= 8 + 2
= 2^3 + 2^1

2^3 转化为二进制可以看做是1后面跟着后面3个零即 1000
2^1 转为为二进制可以看做是1后面跟着后面1个零即 10

 1000
+  10
————————
 1010

位数对齐后相加,满二进位
1.2、二转十

二进制数1110转为十进制

方法一、

1011

这是个二进制数,所以每个数都有2的影子。所以我们从右边数,

1转为 1*2^0等于1

1转为 1*2^1等于2

0转为 0*2^2等于0

1转为1*2^3等于8

1+2+0+8=11

方法二(推荐)、

1110

=1000 + 100 + 10

= 10^3 + 10^2 + 10^1
————————
然后二进制转为十进制,需要把底数10转为2得到
= 2^3 + 2^2 + 2^1

=14

二、&按位与

3&5=1

&按位与的运算规则是将两边的数转换为二进制位,&有并且的意思,在这里是两个为1才1。1&0=0 , 0&1=0 , 0&0=0。把两个数的二进制数从右边开始对齐,3为11,5为101,只有第一个数1都为1所以3&5=1

3 & 5

​   11

​ 101
————————

​ 001

001=1*2^0=1

三、| 按位或

3|5 =1

|按位或的运算规则是将两边的数转换为二进制位,|有或者的意思,在这里是两个数中有一个1就为1, 1|1 = 1 , 0|0 = 0 , 0|1 = 1。

3 | 5

​   11

​ 101
————————

​ 111
111 = 1000 - 1 = 2^3 - 2^0 = 7

四、^异或运算

3^5 =6

其运算规则为1^0 = 1 , 1^1 = 0 , 0^0 = 0。相等的为0,不相等的为1

3 ^ 5

​  11
​ 101
————————

​ 110

五、<<左移运算符、

5 << 2 = 20

5<<2的意思为5的二进制位往左挪两位,右边补0,5的二进制位是101 , 往左挪两位就是1 0100 。如果是负数,右边补1

或者看成 5* 2^2 = 20

六、>>(右移运算符)

5 >> 2 = 1

右移两位就是把101左移后为0000 0001,正数左边第一位补0,负数补1,等于除于2的n次方,结果为1

七、>>>(无符号右移运算符)

5 >>> 2 = 1

与右移运算符的区别就是在于负数的运算。往右移,正数左边第一位补0,负数也补0

八、~(取反运算符)

~5 = -6

取反就是1为0,0为1,5的二进制位是0000 0101,取反后为1111 1010,值为-6

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值