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'
>>>




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值