python与或非位运算_python位运算
什么是位运算
位运算就是把数字当成二进制来进行计算,位运算有六种:&(与), |(或), ^(异或), ~(非), <>(右移)
&(与)
&运算规则:两个位都为1,结果为1,否则为0
# &(与)
a = 3
b = 9
print(a & b)
# a----0101
# b----1001
# a&b--0001
# a&b=1
## |(或)
|运算规则:两个位至少有一个为1,结果为1,否则为0
```python
# |(或)
a = 3
b = 9
print(a | b)
a----0101
b----1001
a|b--1101
a|b=11
## ^(异或)
^运算规则:两个位不同,结果为1,否则为0
```python
# ^(异或)
a = 3
b = 9
print(a ^ b)
# a----0101
# b----1001
# a^b--1100
# a^b=10
## ~(非)
~运算规则:对所有位取反,1变成0,0变成1
```python
a = 5
print(~a)
猜猜结果是多少?是不是以为是2,哈哈哈
看一下打印结果
```python
-6
what? 检查下计算过程
# a----101
# ~a--010
# ~a=2
按照运算规则,没错啊
这是为什么呢?其实,计算机中是以补码的形式来进行计算的
对于正数:
原码=反码=补码
对于负数:
反码=原码的符号位不变,其余位取反;
补码=反码+1
使用sys.getsizeof可以查看对象在内存空间占用的大小
import sys
a = 5
print(sys.getsizeof(a)) # 28
说明a在内存中占的位数是28
现在我们来一步一步等推算~a
a的二进制形式
0000 00000000 00000000 00000101
由于运算是以补码的形式进行,因此要将原码转化成补码,由于a为整数,因此其补码就等于原码
```python
# a的补码
0000 00000000 00000000 00000101
对a的补码进行~运算,结果为
```python
# 结果的补码
1111 11111111 11111111 11111010
到这里要注意了,计算机运算的时候是以补码的形式,但是显示到终端上还是以原码的形式,因此我们要把结果再转化回原码
由于结果为负数(符号为1),先把补码转化成反码,反码=补码-1
# 结果的反码
1111 11111111 11111111 11111001
再计算结果的原码
# 结果的原码
1000 00000000 00000000 00000110
再把结果的二进制转化成十进制形式,符号为1说明是负数,-(4+2)= -6,因此结果为-6
上面的计算过程只是让我们对计算机如何进行位运算有一个认识,实际上对于任意数a,~a = -(a+1),根本不用手工转化成二进制计算
## <
<
```python
a = 9
print(a << 2) # 36
对于整数a,a<
## >>(右移位)
'>>'的规则:运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数
```python
a = 9
print(a >> 2) # 2
对于整数a,a<
python与或非位运算_python位运算相关推荐
- python 幂运算_python幂运算
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! "**"运算这个"**"比较简单,就是标 ...
- python浮点数怎么运算_Python 浮点数运算
浮点数用来存储计算机中的小数,与现实世界中的十进制小数不同的是,浮点数通过二进制的形式来表示一个小数.在深入了解浮点数的实现之前,先来看几个 Python 浮点数计算有意思的例子: 0.1 == 0. ...
- python中集合运算_python集合运算
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 每个韦恩(venn)图中的红色部分是给定集合运算得到的结果.? python 集 ...
- python位运算符_Python位运算符
操作符1 名称:& 描述:按位与运算符 示例: #!/usr/bin/python # -*- coding: UTF-8 -*- # 定义变量,通过赋值运算符赋值"=" ...
- python复数的概念及运算_python 复数运算
复数的数学运算 复数可以用使用函数 complex(real, imag) 或者是带有后缀j的浮点数来指定.比如: >>> a = complex(2, 4) >>> ...
- python语言是不是非开源语言_python是开元语言吗?
展开全部 Python语言是一门通用语言,google的搜索引擎.纽交所的在线交易中间的很多功62616964757a686964616fe4b893e5b19e31333433626535能都是py ...
- python 列表运算_python列表运算详解
1.列表相加 通过列表相加的方法生成新列表.color1 = ['green','blue','pink','red'] color2 = ['black','white'] color = colo ...
- python 整数逆位运算_python训练营:注释、运算符、数据类型与位运算
天学习的内容整理成脑图如下,其中带☆的是需要重点掌握的模糊知识点,需要加强训练和记忆. 二.具体学习内容 2.1 注释 2.1.1 多行注释 2.1.2 长字符串注释 2.2 运算符 2.2.1 算术 ...
- python左移位运算_python 移位运算符只能用于整型吗
匿名用户 1级 2016-12-29 回答 什么是操作符? 简单的回答可以使用表达式4 + 5等于9,在这里4和5被称为操作数,+被称为操符. Python语言支持操作者有以下几种类型. 算术运算符 ...
最新文章
- MVC ---- EF高级增删改
- 受软银收购利好影响 ARM股价大涨近50%
- Spring 中获取servletContext及WebApplicationContext以及applicationContext三者之间的关系
- Centos系统使用代理上网时 yum的代理设置
- 简述python3默认使用的编码标准_Python3.X默认使用的编码是
- 如何让js在浏览器宽度改变的时候执行一个函数?浏览器宽度变化
- python生成器的作用是什么_看完这篇,你就知道Python生成器是什么
- Unity3D数学工具(Mathf)
- JMeter使用教程-压测
- GetShell的姿势总结
- 设置局域网内共享磁盘
- 今日话题:蜗居在大城市的生活
- 阿里云团队漏洞托管、渗透测试、攻防演练
- WP系统一次订阅,终身锁屏同时显示农历和天气
- leek()函数使用
- 电脑自带字体包的文件夹位置
- 电路设计常识必备的知识
- 肇庆学院与韶关学院计算机专业,2016韶关学院VS肇庆学院 基于排名角度的比较?...
- keil提示仿真器SWD/JTAG Communication Failure的问题解决
- ItemIDList结构(文件路径的转换)