扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在学习按位与运算之前先了解一下位运算,位运算是将某个十进制数字转化为二进制,然后再根据不同的运算规则进行运算。
例如:
1:0001
5:0101
3:0011
16:10000
32:100000
将数字转化为二进制后进行与操作,对应数字分别与运算;相当于乘法,只有两个1进行计算时结果才为1,其它情况与运算结果都为0。
计算方法:
第一位 | 第二位 | 结果 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
5 & 4 = 0101 & 0100 = 0100 = 4
5: 0 1 0 1
&
4: 0 1 0 0
= 0 1 0 0
5 & 4 = 4
5 & 3 = 0101 & 0011 = 0001 = 1
5: 0 1 0 1
&
3: 0 0 1 1
= 0 0 0 1
5 & 3 = 1
按位或运算:|按位或运算,在运算过程中只要两个数字有任意一个是1,则结果就为1
计算方法:
第一位 | 第二位 | 结果 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
5 | 3 = 0101 | 0011 = 0111 = 7
5: 0 1 0 1
&
3: 0 0 1 1
= 0 1 1 1
5 & 3 = 7
异或运算:^异或运算,相同的两个数结果为0,相异结果为1
计算方法:
第一位 | 第二位 | 结果 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
5: 0 1 0 1
&
3: 0 0 1 1
= 0 1 1 0
5 & 3 = 6
左移运算:<<左移操作 x<< i 表示 数字x向左移动 i 位,低位补0.
例如:8<< 2 表示将8向左移动2位,底位补0.
计算过程:
8:1 0 0 0
向左移动两位,低位补零 1 0 0 0 0 0 = 32
简单理解:左移就是乘法,x<< i 相当于x * 2 ^ i.
某个值乘以2的i次幂:8 * 2^2 = 32.
右移运算:>>右移操作x >>i 表示 数字x向右移动 i 位,高位补0.
例如:8 >>2 表示将8向右移动2位,高位补0.
计算过程:
8:1 0 0 0
向右移动两位,高位补零 0 0 1 0
简单理解:右移就是除法,x >>i 相当于x / (2 ^ i).
某个值除以2的i次幂:8 / (2^2) = 2.
无符号右移运算:>>>无符号右移操作 x >>>i 表示数字x向右移动 i 位,高位补0.
例如:8 >>>2 表示将8向右移动2位,高位补0.
计算过程:
8:1 0 0 0
向右移动两位,高位补零 0 0 1 0
简单理解:右移就是除法,x >>i 相当于x / (2 ^ i).
某个值除以2的i次幂:8 / (2^2) = 2.
细心的同学会发现,右移运算与无符号右移运算结果没有任何区别,计算方法也没有区别。没错!右移运算和无符号右移运算在正数计算过程中相同,它两个的主要区别在于对负数的计算不同,对于负数的运算操作欢迎大家评论区留言。后续我会将负数操作整理。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流