前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 按位运算符(&,|,^,>>,<<,>>>)

Java 按位运算符(&,|,^,>>,<<,>>>)

作者头像
Jacob丶
发布2020-08-05 18:06:01
7080
发布2020-08-05 18:06:01
举报
文章被收录于专栏:JacobJacob

&(按位与)

代码语言:javascript
复制
定义:针对二进制,只要有一个为0,就为0。

2 & 5 = 0

2的二进制:00000000 00000000 00000000 00000010

5的二进制:00000000 00000000 00000000 00000101

|(按位或)

代码语言:javascript
复制
定义:针对二进制,只要有一个为1,就为1。

2 | 5 = 7

2的二进制:00000000 00000000 00000000 00000010

5的二进制:00000000 00000000 00000000 00000101

^(按位亦或)

代码语言:javascript
复制
定义:针对二进制,相同的为0,不同的为1。

2 ^ 5 = 7

2的二进制:00000000 00000000 00000000 00000010

5的二进制:00000000 00000000 00000000 00000101

2 ^ 3 = 1

2的二进制:00000000 00000000 00000000 00000010

3的二进制:00000000 00000000 00000000 00000011

~(按位非)

代码语言:javascript
复制
定义:按位取反运算符翻转操作数的每一位,即0变成1,1变成0。

~8 = -9

8的二进制:00000000 00000000 00000000 00000100

~8的二进制:11111111 11111111 11111111 11110111

因为高位是1,所以该数为负数。<font color ="#CC0000">负数的补码是其绝对值的原码取反,末尾再加1。</font>

末尾减1得反码:11111111 11111111 11111111 11110110

将反码取反:00000000 00000000 00000000 00001001 = 9

<<(向左位移)

代码语言:javascript
复制
定义:针对二进制,转换成二进制后向左移动3位,后面用0补齐。

3 << 1 = 6

3的二进制:00000000 00000000 00000000 00000011

3左移后进制数:00000000 00000000 00000000 00000110

>>(向右位移)

代码语言:javascript
复制
定义:针对二进制,转换成二进制后向右移动3位。

3 >> 1 = 1

3的二进制:00000000 00000000 00000000 00000011

3右移后进制数:00000000 00000000 00000000 00000001

>>>(无符号右移)

代码语言:javascript
复制
定义:忽略符号位,空位都以0补齐。

-1 >>> 1 = 2147483647

-1的二进制(补码表示法):11111111 11111111 11111111 11111111

右移后:01111111 11111111 11111111 11111111
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • &(按位与)
  • |(按位或)
  • ^(按位亦或)
  • ~(按位非)
  • <<(向左位移)
  • >>(向右位移)
  • >>>(无符号右移)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档