运算符_位运算
位运算:将数据转成二进制进行计算
这边的位运算符和C中的类似,可以直接将C中的只是转移过来,提高效率,感兴趣的读者可以前往C中的专区查看位运算的规则
4(2)=0000 0100
8(2)=0000 1000
按位与&
4&8(2)=0000 0000
按位或|
4|8(2)=0000 1100
eg:
a,b=4,8
print(a&b)
print(a|b)
output:
0
12
0(2)=0000 0000
12(2)=0000 1100
简易的表示如上所示
左移位运算符<<
高位溢出会舍弃,低位自动补0
4<<1(2)=0000 1000
对于4移动的时候前面的零溢出会扔掉,低位缺一个数字,自动补上零(感觉在负数的情况下好像不能这样解释,C中的高位溢出的规则可能也适用于这边?,符号位还是比较奇怪的)
右移位运算符>>
与左移位是对偶的,低位溢出会舍弃,高位自动补0
4>>1(2)=0000 0010
左移右移在某种情况下可以近似认为是将数字a左移乘上2的k次方(数据没有溢出的情况下),右移是将数字整除2的k次方,这边的2的k次方中的k由移动k位决定
注意位运算是比乘法快的,所以有时候可以借助位运算提高运算效率
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇
· 易语言 —— 开山篇