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

位运算符

原创
作者头像
uniQue_cjh
发布2023-04-09 15:34:11
2930
发布2023-04-09 15:34:11
举报
文章被收录于专栏:cjh学习笔记cjh学习笔记

·位运算符

--位运算是把数字看做二进制数来进行计算的,先将要进行运算的数据转换为二进制,然后才能进行运算

--“位与”运算(&)

·两个操作数据的二进制表示,只有对应位都是1时,结果为1,否则为0

位与运算
位与运算
代码语言:javascript
复制
print(12 & 8) #位与运算
结果:8

--“位或”运算(|)

·两个操作数据的二进制表示,只有对应位都是0时,结果为0,否则为1

位或运算
位或运算
代码语言:javascript
复制
print(4 | 8)#位或运算
结果:12 

--“位异或”运算(^)

·两个操作数据的二进制表示,同时为0或同时为1,结果为0,否则为1(相同为0,不同为1)

位异或运算
位异或运算
代码语言:javascript
复制
print(31 ^ 22)#位异或运算
结果:9

--“位取反”运算(~)

·操作数中对应的二进制数1修改为0,0修改为1

位取反运算
位取反运算
代码语言:javascript
复制
print(~123) #位取反运算
结果:-124

--“左移位”运算(<<)

·将一个二进制数向左移动指定的位数,左边(高位端)溢出的位被丢弃,右边的空位用0补充

·左移位运算相当于乘以2的N次幂

左移位运算
左移位运算
代码语言:javascript
复制
print('左移位',2<<2) #左移位:将2向左移动2位
结果:8  (相当于2*2**2即2乘以2的2次幂)
print('左移位',2<<3) #左移位:将2向左移动3位
结果:16 (相当于2*2**3即2乘以2的3次幂)

--“右移位”运算(>>)

·将一个二进制数向右移动指定的位数,右边(低位端)溢出的位被丢弃,左边(高位端)的空位端,如果最高位是0(正数)左侧空位填0,如果最高位是1(负数),左侧空位填1

·右移位运算相当于除以2的N次幂

右移位运算
右移位运算
代码语言:javascript
复制
print('右移位',8>>2) #右移位:将8向右移动2位
结果:2  (相当于8/2**2即8除以2的2次幂)
print('右移位',-8>>2) #右移位:将-8向右移动2位
结果:-2 (相当于-8/2**2即8除以2的2次幂)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ·位运算符
    • --“位与”运算(&)
      • --“位或”运算(|)
        • --“位异或”运算(^)
          • --“位取反”运算(~)
            • --“左移位”运算(<<)
              • --“右移位”运算(>>)
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档