python中 “按位与,或,异或”与C语言的不同

转自: http://blog.sina.com.cn/s/blog_857dce810100vwah.html

在python中:

按位的运算,都按位的运算,都是把参加运算的数的二进制形式进行运算。

1.与运算:A与B值均为1时,A、B与的运算结果才为1,否则为0 (运算符:&)

2.或运算:A或B值为1时,A、B或的运算结果才为1,否则为0  (运算符:|)

3.异或运算:A与B不同为1时,A、B的预算结果才为1,否则为0  (运算符:^)

4.按位翻转(按位取反):将内存中表示数字的2进制数取反0取1,1取0 (运算符:~)

运算方式:

1.与运算:5&3计算过程为 0101(2)&0011(2)=0001(2)=1

注释:意思是把两个数全部转换为二进制进行比较,如上例:5的二进制为0101,3的二进制为0011.则这两个数的二进制数种第一位相同,取一,其余全部取零。得0001,再转换为十进制结果为 1

为方便理解再举个例子,《python核心编程》中表5-4中的例子:>>>30&45  结果为12

即30=(011110), 45=(101101)位运算得12(1100)

其余三种位运算与此相同

2.或运算:5|3计算过程为 0101(2)|0011(2)=0111(2)=7

3.异或运算:5^3计算过程为 0101(2)^0011(2)=0110(2)=6

4.按位翻转(按位取反):5=0101(2) 计算过程~5=1010(2)   例如:X的按位运算为-(X+1)

其他位的运算:(<<,>>)

1. <<:左移把一个数的bit向左移动一定数目例如:2=0010(2)  2<<2=8(左移2位,1000(2))

2. >>:右移 方式与左移相同只是方向相反

计算机中的负数表示:

将原数按位取反后+1=原数的补码(原数的反数)

原数:在计算机中用2进制的方式表示一个普通数字所形成的数就是原数

例如:5=00000000 00000000 00000000 00000101

5取反后就为11111111  11111111  11111111  11111010其结果+1就是原数的补码即为-5的2进制表示

C语言中:

优先级从高到低,依次为~、&、^、|

按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取x的最低7位:x & 0177。二是让某变量保留某几位,其余位置0,如以下代码让x只保留最低6位:x = x & 077。

按位或运算的典型用法是将一个位串信息的某几位置为1。如将要获得最右4位为1,其他位与变量j原来其他位保持相同,可用逻辑或运算017|j;

按位异或运算的典型用法是求一个位串信息的某几位信息的反。如欲求整型变量j的最右4位信息的反,用逻辑异或运算017^j,就能求得j最右4位的信息的反,即原来为1的位,结果是0,原来为0的位,结果是1。交换两个值,不用临时变量,假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现:
a=a^b; b=b^a;     a=a^b;

取反运算常用来生成与系统实现无关的常数。如要将变量x最低6位置成0,其余位不变,可用代码x = x & ~077实现。

python中 “按位与,或,异或”与C语言的不同相关推荐

  1. python 中 (按位与) 和 | (按位或)

    python 中 & (按位与) 和 | (按位或) 是把 2个数据转为二进制然后在做相应的计算 下面详细说下 a = 10 # 10的二进制为1010 b = 18 # 18的二进制为100 ...

  2. python中汉字与变量不可同时出现_Python语言应用培训课(选择练习)

    第一部分 1.多选题: Python在金融中的运用包括( ) 选项:A:绩效分析B:风险分析C:程序化交易D:量化分析答案: [绩效分析;风险分析;程序化交易;量化分析] 第二部分 1.判断题: py ...

  3. C语言中按位与/或/异或运算笔记

    按位与(&)和,或(丨),异或(^)运算都是属于位运算符 是在二进制形式上进行的一个运算符 很简单的三种运算,但是有时候会很容易记反. 一.按位与运算 按位与运算口诀:同一则一. 1.只有当两 ...

  4. python 的按位与 或 异或 运算

    符号 描述 运算规则                        by MoreWindows & 与 两个位都为1时,结果才为1     (统计奇数) | 或 两个位都为0时,结果才为0  ...

  5. C语言中十六进制字符串的异或校验,C语言实现字符串的异或校验.doc

    #include #include #include #include void dofile(char *in_fname,char *password,char *out_fname)//文件加密 ...

  6. python中异或怎么算_python 异或运算的前提_异或运算公式

    Python基础(10)–数字-Python-第七城市 609x288 - 73KB - JPEG Python基础(10)--数字_资讯_突袭网 609x288 - 33KB - JPEG pyth ...

  7. python中的取余运算符是_python取余运算

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python中对负数求余的计算方法和求幂运算注意点python中对负数求余的计算 ...

  8. python中 1.34e3_Python快速编程入门——第2章 Python基础语法

    第2章 python基础语法 一.基本语法 二.变量和数据类型 三.标识符和关键字 四.简单数值类型 一.基本语法 注释:Python的注释是用# 不像C/C++使用的是//或者/*/.多行注释好像挺 ...

  9. Python中metaclass解释

    Classes as objects 首先,在认识metaclass之前,你需要认识下python中的class.python中class的奇怪特性借鉴了smalltalk语言.大多数语言中,clas ...

最新文章

  1. 程序员的自我修养--链接、装载与库笔记:内存
  2. abaqus分析用户手册单元卷_作用卷、分析卷、材料卷三件套,让你也能熟练应用Abaqus...
  3. linux 命令输出保存为文件的三种方式
  4. matlab的开方算法_正确的「记事本」打开方式:能渲染3D图像,还能玩贪吃蛇
  5. 调用Com+时提示找不到文件
  6. 精彩十年(2)——阴沟里也翻船
  7. MCU HardFault问题查找和破解方法
  8. 鼎信诺审计前端取数工具_给2019前端的5个建议
  9. Mac下安装SBT-1.2.8
  10. windows 和 ubuntu服务器之间用Xshell互传文件
  11. 数据库系统概念 第三章 习题答案
  12. 关于oracle端口映射的远程连接
  13. win10蓝牙已配对连接不上_win10蓝牙耳机连接不上怎么办_win10蓝牙耳机连接不上的解决方法...
  14. java8新增特性一:lambda表达式
  15. 第39级台阶回溯算法c语言,五大经典算法之回溯法 - osc_9ipdey7e的个人空间 - OSCHINA - 中文开源技术交流社区...
  16. RP原型打不开解决方法附插件
  17. python皮卡丘字符打印代码,python画皮卡丘的代码
  18. 安卓屏幕坏了怎么把资料拷出来_选择苹果还是安卓呢?(老安卓转苹果11用户体验)...
  19. mysql如何给表加密_sql怎么加密表
  20. Springboot学习笔记(二)Web开发

热门文章

  1. 查看、修改数据库和表的编码格式
  2. 数据维度太多,咋办?我们整理了17种表现形式
  3. macOS根目录上无法写入文件和创建目录的问题
  4. 传统企业培训与线上直播培训大PK
  5. tf.estimator.Estimator解析
  6. 通信协议-GMSL(千兆多媒体串行链路)
  7. 【Endnote】在论文中插入参考文献,并将插入参考文献的序号格式改为[1] [2] [3] 或1,2,3
  8. DFT的简单介绍(上)
  9. 删除 python print()输出的字符里的空格
  10. MIPS 、DMIPS、MFLOPS 是 什么?