在python中八进制数表示为_python3之数字(在实际应用中的数字--十六进制、八进制和二进制记数)...

python3之数字(在实际应用中的数字–十六进制、八进制和二进制记数)

———-

python整数能够以十六进制、八进制和二进制记数法来编写,作为一般的十进制记数法的补充。如例:

>>>0o1,0o20,0o377 #八进制

(1,16,255)

>>>0x01,0x10,0xFF #十六进制

(1,16,255)

>>>0b1,0b10000,0b11111111 #二进制

(1, 16, 255)

python默认地用十进制值显示,但它提供了内置的函数,允许我们把整数转换为其他进制的数字字符串:

>>> oct(64),hex(64),bin(64)

('0o100', '0x40', '0b1000000')

oct函数会将十进制数转换为八进制数,hex函数会将十进制转换为十六进制数,而bin函数会将十进制数转换为二进制。另一种方式,

内置int函数会将一个数字的字符串转换为一个整数,并可以通过定义的第二个参数来确定第一个数字字符串参数的进制。

>>>int('64'),int('100',8),int('40',16),int('1000000',2)

(64, 64, 64, 64)

在继续学习之前,有两点需要注意。

首先,python2.6的用户应该记住在编写八进制之前,直接用一个0开头,python中最初的八进制格式如下:

>>>0o1,0o20,0o377 #python2.6与python3.0中都可用

(1, 16, 255)

>>>01,020,0377 #只用于python2.6中

(1, 16, 255)

在python3.0中,上例中的第二组语法将会产生错误。即便它在python2.6中不是一个错误,还是要小心,不要用0开始一个数字字符串,除非你真的是想要表示一个八进制的值。python2.6会将其当作是八进制数,但可能不像你所期待的那样工作,010在python2.6中总是八进制数,而不是十进制数。也就是说,

为了保持与十六进制和二进制的形式对称,python3.0修改了八进制的形式,在python3.0中必须使用0o010,并且,

在python2.6中,也应该尽可能使用0o010。

其次,注意这些常量可以产生任意长度的整数。例如,下面的例子创建了十六进制形式的一个整数,然后先用十进制形式显示它,再将其转换为八进制和二进制的形式:

>>> X=0xFFFFFFFFFFFFFF

>>> X

72057594037927935

>>> oct(X)

'0o3777777777777777777'

>>> bin(X)

'0b11111111111111111111111111111111111111111111111111111111'

>>>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值