1.<<(左移)

将数字的位向左移动指定的位数(二进制表示);

例:2<<2输出8

2的二进制表示为10,向左移动2位为1000,十进制为8.

2.>>(右移)

将数字的位向右移动指定的位数(二进制表示);

例:11>>1输出5

11的二进制表示为1011,向右移动1位为101,十进制为5.

3.&(按位与)

将数字(二进制)对应位数比较,若对应位都为1,则对应位为1,否则为0;

例:5&3输出1

5的二进制为101,3的二进制为011,按位与结果为001,十进制为1.

4.|(按位或)

将数字(二进制)对应位数比较,若对应位至少有一个为1,则对应位为1,若对应位都为0,则对应位为0;

例:5|3输出7

5的二进制为101,3的二进制为011,按位或结果为111,十进制为7.

5.^(按位异或)

将数字(二进制)对应位数比较,若对应位只有一个为1,则对应位为1,否则对应位为0;

例:5^3输出6

5的二进制为101,3的二进制为011,按位或结果为110,十进制为6.

6.~(按位取反)
计算机内部在做数学运算时(也就是计算机的0和1的运算),都是以补码为标准的,说白了计算机中就一种码那就是补码,而现实社会中的编码规则,例如原码、反码都是我们自定义的,为了和计算机中的补码形成转换关系。所以说在我们手工计算这类由计算机计算的01运算,要站在计算机的角度。因此首先就要将我们的原码反码全都先转为补码,再来计算.

正数的原、反、补码都是它本身;负数的原码最高位为1开头,反码是最高符号位不变,其余位在原码的基础上取反,补码是在反码的基础上+1即可得到.

例:~5输出6

5的补码:00000101

00000101按位取反,取反结果为: 11111010

这里的结果是用补码表示的,还是机器表示形式,转化为自然语言的编码,把结果转化为原码:

补码-1转为反码: 11111010 - 1 = 11111001

反码再取反转为原码:11111001 = 10000110

原码转为十进制,答案就是-6.

x按位取反运算公式为: -(x+1)

python入门之左移,右移,按位与,按位或,按位异或,按位取反相关推荐

  1. C语言按位与 按位或 按位异或 按位取反

    与运算:& 两者都为1为1,否则为0 1&1=1,  1&0=0,  0&1=0,  0&0=0 或运算:| 两者都为0为0,否则为1 1|1 = 1,  1| ...

  2. C语言按位与 按位或 按位异或 按位取反(二)

    位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型 ...

  3. C语言按位与 按位或 按位异或 按位取反 (一)

    与运算:& 两者都为1为1,否则为0 1&1=1,  1&0=0,  0&1=0,  0&0=0 或运算:| 两者都为0为0,否则为1 1|1 = 1,  1| ...

  4. Python菜鸟之python入门

    python入门知识 1:python的产生与简介 Python是著名的"龟叔"Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言.龟 ...

  5. 位操作符详解(移位操作符(左移/右移)、按位与‘’操作符、按位或‘|’操作符、按位异或‘^’操作符)

    位操作是程序设计中对位模式按位或二进制数的一元和二元操作: 在许多微处理器上,位运算与加减运算速度大致相同,但位运算的速度远快于乘法运算: 位操作符的使用,可以使我们在处理一些问题上方便许多. 移位操 ...

  6. 位运算符:按位与(),按位或(|),按位异或(^),取反(~)左移()和右移()

    数据在内存中是以二进制的形式存放的,计算机存储数据的最小单位是位(bit),一个二进制位可以表示两种状态(0和1),一个字节通常由8位二进制位组成.C语言支持按位运算,按位运算也就是对字节或者字中的实 ...

  7. java中左移运算符解释_java左移右移运算符

    位运算(只对byte.short.char.int.long有效) 左移和右移运算相当于实现整数乘以或除以2的n次方 2.7三元运算符表达式1的结果为true时,就为第二个表达式,如果为...... ...

  8. c语言负数左移右移_C语言位运算符:与、或、异或、取反,左移和右移

    C语言位运算符:与.或.异或.取反.左移和右移 个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. ,则该位的结果值为1,否则为0 | ...

  9. c/c++位操作简介--移位、位与、位或、异或

    概述 C/C++里面位操作符表示为如下:左移位 << ,右移位 >>,位与 &,位或 | ,位异或 ^,按位求反~. 位操作符针对的是补码形式(可参见下面的例子,其实我 ...

最新文章

  1. 图解HashMap和HashSet的内部工作机制
  2. Java jdbc数据库连接池
  3. CentOS 6.0 xdmcp 配置
  4. 数学建模 聚类模型
  5. 使用QGIS将文本坐标转换为矢量文件
  6. java文件中获取创建日期_如何在Java中获取文件的上次修改日期
  7. 图神经网络(GCN)
  8. python编写骰子和的程序_简单掷骰子程序发行
  9. 天若OCR v5.0 自用免配置增强版
  10. Windows下Netron安装
  11. 取文件操作fopen(file open)
  12. 前端面试题集锦——算法
  13. 生活随笔--拆弹专家
  14. 大学生就业的三方协议基本概述
  15. msyql慢查询相关
  16. Maurice Wilkes
  17. 9个免费的 CSS 生成器网站
  18. 小草小草快点长大。。
  19. 深度经验总结:快逸报表工具单数据集版本和多数据集版本的主要区别之一
  20. Linux基本命令(完整版-详解)

热门文章

  1. 【面试题系列】Java多线程常见面试题
  2. OPPO Reno发布:2999元起,侧旋升降+10倍混合光变
  3. 7.PBR材质与纹理贴图
  4. PC微信如何获取群成员数量
  5. 中海达ihand30手簿详细教程_中海达ihand20手簿使用简易说明书
  6. Java基础知识多线程,同步锁
  7. osgEarth示例分析——osgearth_splat
  8. Linux 6安装kde桌面,centos6.3光盘安装KDE桌面环境
  9. JAVA小功能语音播报功能
  10. 重视网络安全刻不容缓