Linux论坛's Archiver

《开源》旗舰电子杂志2009年第1期火热下载!

eudemon 发表于 2008-8-26 11:16

关于python中的string.atoi()的问题

#!/usr/bin/python
#filename:string.py

import string

print  string.atoi('13',8)      #这里转换8进制的数
print string.atoi('13',16)     #这里转换成16进制的数

运行后的结果:
11
19      

这里的结果我有点想不明白,我用计算器转的结果  8进制应该是15,16进制应该是D,python中这种转换是如何得到11和19这样的结果?

[[i] 本帖最后由 eudemon 于 2008-8-26 11:47 编辑 [/i]]

赵龙 发表于 2008-8-26 13:20

atoi(s,[base])  
base默认是10,这个函数的作用是将字符串 s 转换成数值类型,而base的作用是指定进制
[quote]
print  string.atoi('13',8)      #这里转换8进制的数
print string.atoi('13',16)     #这里转换成16进制的数
[/quote]

print  string.atoi('13',8)      #这里是将字符串'13'基于8进制转换成数值类型  即11
print string.atoi('13',16)     #这里是将字符串'13'基于16进制转换成数值类型  即19

cnangel 发表于 2008-8-26 15:14

right

eudemon 发表于 2008-8-26 22:32

首先非常感谢解答。
可能是我的理解能力有问题,这里的基于进制的转换和直接转换成8进制或16进制的概念是不一样的对吗?

print  string.atoi('13',8)      #这里是将字符串'13'基于8进制转换成数值类型  即11
print string.atoi('13',16)     #这里是将字符串'13'基于16进制转换成数值类型  即19

这里的11和19 并不是所谓的8进制数和16进制数,是这样理解吗?

赵龙 发表于 2008-8-27 15:43

11和19是十进制数,而13的进制则根据第二个参数的变化而变化。

eudemon 发表于 2008-8-27 22:29

:handshake

再次表示感谢。我理解了。

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.