位运算符(逻辑、移位)详解
创始人
2025-05-29 05:24:07

位运算符有七个,分为两类:

逻辑位运算符:位与(&)、位或(|)、位异或(^)、非位(~)
移位运算符:左移(<<)、右移(>>)、无符号右移(>>>)

1. 逻辑为运算符

主要包括:位与(&)、位或(|)、位异或(^)、非位(~)

1.1 位与(&)

参加运算的两个数据,按二进制位进行“与”运算。运算规则:同1为一,其余为0

例:

3&5=1 即 0000 0011& 0000 0101 = 0000 0001

1.2 位或(|)

参加运算的两个对象,按二进制位进行“或”运算。运算规则:同0为0,有1为1

例:

2|6=6 即 0000 0010 | 0000 0110 = 0000 0110

1.3 位异或(^)

参与运算的两个数据,按二进制位进行“异或”运算。运算规则:相同为0,不同为1
例:

2^6=4 即 0000 0010 ^ 0000 0110 = 0000 0100

1.4 非位(~)

即按位取反,操作会翻转其每一位。运算规则:0变为1,1变为0

∼0=1,∼1=0

1.5 负数的逻辑运算:

负数按补码形式参加按位或运算,符号位也要参与运算。
例:

-2:原码:1000 0010,反码(符号位不变,其他位取反):1111 1101,补码:1111 1110
-2|6= 即:1111 1110 | 0000 0110 

2. 移位运算符

主要包括:左移(<<)、右移(>>)、无符号右移(>>>)

2.1 左移(<<)

符号左边是要进行左移运算的数,右边表示要移动的位数。运算规则:高位丢弃,低位补0
(byte、short会转成int,即32位进行移位操作)

相当于乘法,左移2位即x4
例:

5<<2=20 即 0000 0101 << 2 = 0001 0100
(2^31 -2)<<2=-8 
即
0111 1111 1111 1111 1111 1111 1111 1110 << 2 
= 1111 1111 1111 1111 1111 1111 1111 1000(补码)
= 1111 1111 1111 1111 1111 1111 1111 0111(反码)
= 1000 0000 0000 0000 0000 0000 0000 1000(原码)
= -8

2.2 右移(>>)

符号左边是要进行左移运算的数,右边表示要移动的位数。运算规则:正数左补0,负数左补1

相当于除法,右移2位即除以4

例:

5>>2=1 即:0000 0101 >> 2 = 0000 0001
-3>>2=-1
即:(这里就用8位表示,实际是32位)
1000 0011 >>2 = 1111 1100反>>2 = 1111 1101补>>2 = 1111 1111补 
= 1111 1110反 = 1000 0001原 = -1

2.3 无符号右移(>>>)

即右移之后,无论该数为正还是为负,右移之后左补0。

正数和右移一样,
负数:

-3>>>2 = 1073741823 ,不做演示

3. 一些应用:

在这里插入图片描述
在这里插入图片描述

相关内容

热门资讯

南财观察 第148期:豆包手机... 现在我们和手机的交互是“人找服务”:需要自己打开微信看地址,再切到地图叫车。而在豆包手机上,你只需要...
出租车司机遭乘客殴打!警方通报... 转自:法治日报12月14日,内蒙古自治区呼和浩特市赛罕区公安分局发布通报称,12月13日,赛罕区公安...
泽连斯基:要求乌克兰单方面撤军... 转自:北京日报客户端据乌克兰国际文传电讯社14日报道,乌克兰总统泽连斯基当天表示,美国要求乌军单方面...
香港火灾受影响居民,将获中医义... 转自:北京日报客户端香港特区政府医务卫生香港局今日(14日)公布,明日起将为大埔宏福苑火灾受影响居民...
晨丰科技:股东杭州宏沃拟减持不... 证券日报网讯 12月14日晚间,晨丰科技公告称,持股4.3134%的股东杭州宏沃计划自2026年1月...