Python数值和进制转换
1.1 python中数值类型
int 整型 123
long 长整型 2147483648L
float 浮点型 3.14
不同的数值类型会自动扩充
int数值大于或等于2^31次方,会自动转换成long
表示方式是在数值后面加上L
如果int或long和float一起运算,结果会自动扩充到float
>>> 3.14 + 1
4.14
python中没有数值溢出的概念,如果超出int的范围会自动扩充到long,
而长整型上不封顶,可以表示非常大的数字
1.2 不同的进制
二进制 0b101
以数字0和字母b打头的表示二进制数 如果出现大于等于2的数 会抛出SyntaxError异常
八进制 0711
以数字0打头的数字表示八进制数 如果出现大于等于8的数 会抛出SyntaxError异常
十进制 123
正常显示 不能出现字母
十六进制 0x15
以数字0和字幕x打头的表示十六进制数 可以出现0-9和abcdef或ABCDEF出现其他数值会抛出SyntaxError异常
在交互式解释器环境中.python会自动的将不同的进制自动转换为十进制,进行运算.
>>> 0b101 + 0711 + 123 + 0x15
606
不同的进制之间可以运用内置函数进行转换
常用的转换函数有:
int(str, base) ==> int
bin(num) ==> str
oct(num) ==> str
hex(num) ==> str
int(str, base) 可以讲字符串转换为整型数,base为相应的进制
base的范围是2~32 还可以为0,当base=0时,会自动尝试合适的进制
base如果不给,缺省情况下会吧字符串向10进制转换,
这时如果字符串中有字母则会抛出ValueError异常
>>> bin(5)
'0b101'
>>> int('0x210', 0)
528
>>> int('0x210', 16)
528