Java 位运算符简介

目录

一、十进制与二进制之间的转换练习

1、十进制转二进制

1.1、方法一

1.2、方法二(推荐)

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

2、二进制转十进制

2.1、方法一

2.2、方法二(推荐)

二、& (按位与) 

三、|(按位或 )

四、^(异或运算 )

五、<<(左移运算符) 

六、>>(右移运算符)

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

八、~(取反运算符)


一、十进制与二进制之间的转换练习

1、十进制转二进制

1.1、方法一

image-20210502182022455

步骤如下:

  • 10除以2 得5 余数为 0
  • 再拿刚才的5除以2得2 余数为1
  • 2除以2得1 余数为0
  • 1除以2 直接余数为1

那么就为1010

1.2、方法二(推荐)

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

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

1000

+  10

————————

1010

位数对齐后相加,满二进位

2、二进制转十进制

2.1、方法一

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

2.2、方法二(推荐)

1110

=1000 + 100 + 10

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

=14


二、& (按位与) 

3&5=1

&按位与的运算规则是将两边的数转换为二进制位&有并且的意思,在这里是两个为1才11&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,5的二进制位101

5>>2表示101右移2位,把最右边两位的01去掉,变为1,最后等于1。,等于除于2的n次方,结果为1

 注意:正数左边第一位补0,负数补1


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

5 >>> 2 = 1

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

 


八、~(取反运算符)

~5 = -6

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值