Python中进制和数据类型转换
二、八、十六进制转换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17二进制:前缀,0b;0b11;每个位最大不能超过1
八进制:前缀,0o;0o17;每个位最大不能超过7
十六进制:前缀,0x;0x1f;每个位最大不能超过f
# 注:在python2中0o和0开始的数字都是8进制
# 手算转换
2进制转换为8:从后向前3位一组进行
2进制转换为16:从后向前4位一组进行
2,8,16进制转换成十进制,都是按照幂次,然后相加进行计算
10进制转换成2进制:除留余数法
# 机算
a=12 #10进制数
bin(a) # 将10进制数转换成2进制
oct(a) # 将10进制数转换成8进制
hex(a) # 将10进制数转换成16进制
注:当a不等于数字时会报错- 数据类型之间的转换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#转换函数
msg=int(msg)
# 将不是int型的变量转换成int型的变量
# 其余类型写法相同,如float
# 当被转换的msg不是纯数字会转换失败,报错
msg=int(x,y)
# 将字符串x,按照y进制转换成10进制数
eg:
msg=int('abc',16) # 将字符串'abc'按照16进制数转换成10进制数
# 转换原因
不同的数据类型有时候不能进行运算
# True False
在进行数据运算时,True=1,False=0;
eg:
print(True + 1) # 结果为2 - 转换成布尔值
1
2
3
4# 在数字里,只有0会被转换成False
# 在字符串里只有空字符串会被转换成False,空格串也会被转换成True
# None会被转换为False,eg:bool(None),打印出来是False
# 空数据类型会被转换成False,如[],(),{}等