繁体   English   中英

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

[英]converting hexadecimal , octal numbers into decimal form using python script

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

谢谢

这里有一些混乱 - 迂腐(和电脑一样,最好是迂腐;-),没有“八进制数字”,有些字符串是数字的八进制表示 (和其他字符串,更常见的是,它们是十进制表示,十六进制表示)。 底层数字(整数)与任何表示形式完全不同(默认情况下显示其十进制表示) - 例如:

>>> 2 + 2
4
>>> '2' + '2'
'22'

引号表示字符串(即表示) - 并注意,它们本身与它们可能代表的数字无关。

所以,解释你的问题的一种方法是你想要将八进制表示转换为十进制表示(等) - 这将是:

>>> str(int('0671', 8))
'441'

注意引用(表示字符串,即表示)。 int(s, 8)将字符串s转换为整数作为八进制表示(或者如果转换不起作用则引发异常)。 str(n)生成数字n的字符串形式(正如我所提到的,默认情况下是十进制表示)。

首先,int()是无用的。 你只需输入0671即可。

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

0671 == 0671
0671 == 441

为了确保您将程序输出所需的基数,最简单的方法是使用字符串格式,如果您希望它在基数10中:

print "%d" % 0671  # will output the number in base 10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM