位运算
首先了解:1字节(byte) = 2个十六进制数位 = 8个二进制数位(bit)
二进制 | 十六进制 |
---|---|
0000 | 0 |
0001 | 1 |
0010 | 2 |
0011 | 3 |
0100 | 4 |
0101 | 5 |
0110 | 6 |
0111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | A |
1011 | B |
1100 | C |
1101 | D |
1110 | E |
1111 | F |
1、按位与运算&:参与运算的两个值,如果两个相应位都为1,则该位结果为1否则为0(用来取需要的数)
# 0xF2:1111 0010 0xF0: 1111 0000 240:1111 0000
>>> print(0xF2 & 0xF0)
240
2、按位或运算|:参与运算的两个值,只要对应的两个二进制位有一个为1时,结果就为1(与+的功能一样)
# 0x03:0011 0x0f: 1111 15:1111
>>> print(0x03 | 0x0f)
15
3、异或^:两个位相同为0,相异为1
# 0x03:0011 0x0f: 1111 12:1100
print(0x03 ^ 0x0f)
12
4、左移动<<:运算数的各二进位全部左移若干位
# 1左移2位,1:0001 4:0100
>>> print(1<<2)
4
5、右移动>>:运算数的各二进位全部右移若干位
# 3右移1位,3:0011 1:0001
>>> print(3>>1)
1
数字的类型转换
函数 | 含义 |
---|---|
int(x) | 将x转换为一个整数 |
long(x) | 将x转换为一个长整数 |
float(x) | 将x转换到一个浮点数 |
complex(real) | 创建一个复数 |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列 s 转换为一个列表 |
chr(x) | 将一个整数转换为一个字符 |
unichr(x) | 将一个整数转换为Unicode字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
1、10进制转16进制
>>> hex(16)
'0x10'
2、16进制转10进制
>>> int('0x10', 16)
16
3、整数转换成字符
>>> chr(65)
'A'
4、字符转换成整数
>>> ord('A')
65