学习内容
今天学习内容接上一篇的
1.数据类型
(1)整型
整型有四种进制表示:十进制、二进制、八进制、十六进制
进制种类 | 引导符号 | 描述 |
---|---|---|
十进制 | 无 | 12,16 |
二进制 | 0b 或 0B | 由字符0和1组成,0b1101 |
八进制 | 0o 或 0O | 由字符0到7组成,0o1725 |
十六进制 | 0x 或 0X | 由字符0到9及a到f、A到F组成,0x9AF4 |
(2)浮点数类型
如0.0, 1.2,-3.6, 16e-4, 56E4
科学记数法使用字母e或E作为幂符号,以10为基数
保留浮点数位数:可用 decimal
包里的 Decimal
对象和 getcontext()
方法实现
【例】
import decimal
from decimal import Decimal
# 默认保留28位
b = Decimal(1) / Decimal(3)
print(b)
# 0.3333333333333333333333333333
# 使用decimal.getcontext().prec来设定保留位数
decimal.getcontext().prec = 6
c = Decimal(1) / Decimal(3)
print(c)
# 0.333333
(3)布尔型
- 布尔 (boolean) 型变量只能取两个值,True和False
- 当把布尔型变量用在数字运算中,用1和0代表 True和 False
- bool作用在基本类型变量:X 只要不是整型 0、浮点型 0.0,bool(X)就是 True,其余就是 False
2.位运算
(1)原码、反码、补码
符号位:最高位为符号位,0表示正数,1表示负数,在位运算中符号位也参与运算
原码:计算机中对数字的二进制定点表示方法
反码:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反)
补码:正数的补码就是原码,负数的补码是反码+1
(2)按位非~
按位非把数字的补码中的 0 和 1 全部取反(0 变为 1,1 变为 0,有符号整数的符号位在 ~运算中同样会取反
(3)按位与&
两个对应位都为 1 时为 1
1 & 1 =1
1 & 0 = 0
0 & 0 = 0
(4)按位或 |
两个对应位中有一个 1 时就为 1
(5)按位异或^
只有两个对应位不同时才为 1,且满足交换律和结合律
(6)按位左移<<
num << i将num的二进制表示向左移动i位所得的值
(7)按位右移>>
num>>i 将num的二进制表示向右移动i位所得的值