首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用python脚本将十六进制、八进制数字转换为十进制形式

使用python脚本将十六进制、八进制数字转换为十进制形式
EN

Stack Overflow用户
提问于 2010-06-15 10:17:57
回答 2查看 15.8K关注 0票数 4

有许多inbulit函数,比如int( octal ),可以用来在命令行上将八进制数转换成十进制数,但这些在脚本中不起作用。int( 0671 )在脚本中返回0671,其中它表示python命令行上八进制数的十进制形式。帮帮忙?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-15 11:08:31

这里有一些混淆--学究(对于计算机,最好是学究;),没有“八进制数字”,有数字的八进制表示的字符串(以及其他更常见的字符串,它们是它们的十进制表示,十六进制表示)。底层数字(整数)是与任何表示法完全不同的类型(默认情况下显示其小数表示法) --例如:

代码语言:javascript
运行
复制
>>> 2 + 2
4
>>> '2' + '2'
'22'

引号表示字符串(即表示) --请注意,就其本身而言,它们与它们可能表示的数字无关。

因此,解释您的问题的一种方法是,您希望将八进制表示转换为十进制表示(等) --这将是:

代码语言:javascript
运行
复制
>>> str(int('0671', 8))
'441'

请注意引号(表示字符串,即表示法)。int(s, 8)将字符串s转换为整数作为八进制表示(或者在转换不起作用时引发异常)。str(n)生成数字n的字符串形式(如上所述,默认情况下是十进制表示)。

票数 12
EN

Stack Overflow用户

发布于 2010-06-15 10:50:51

首先,int()是无用的。你可以直接输入0671。

然后,数字以二进制形式存储在计算机本身上,您只需转换其字符串表示形式。数字本身不会改变。因此,这两个都将解析为True,例如,这可能是混淆的根源:

代码语言:javascript
运行
复制
0671 == 0671
0671 == 441

为了确保程序以您想要的基数输出数字,最简单的方法是使用字符串格式,如下所示(如果您希望它以10为基数):

代码语言:javascript
运行
复制
print "%d" % 0671  # will output the number in base 10
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3042135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档