Python 打印二进制值及其十进制形式
Python printing binary value and its decimal form
Python 2.6/2.7
我有以下程序。
print 0b10
def p_m(x):
print x
p_m(bin(2))
输出:
2
0b10
我想在 p_m() 中打印的是“0b10”的 2(十进制值),这是我作为第一个参数传递给 p_m() 并得到的变量 x 中的值“0b10”并仅打印该 x。
为什么函数内部的 print x
不像程序中的第一行那样工作?
在p_m()的打印语句中我应该怎么做才能将“0b10”的值打印为2.
print 0b10
给出 2。
这是因为所有的数字都以二进制形式存储在python中。
bin(2)
是一个字符串。所以它给你二进制值。
您可以使用 print int('0b10', 2)
。这里 2 表示基数,'0b10' 是您要转换的二进制文件。 0b
0b10
的一部分不是强制性的,因为 int()
已经知道它会将其转换为基数 2。Documentation 说,
The default base is 10. The allowed values are 0 and 2-36. Base-2, -8,
and -16 literals can be optionally prefixed with 0b/0B, 0o/0O/0, or
0x/0X, as with integer literals in code.
使用 2 base parameter:
将字符串 0b10
转换回 int
def p_m(x):
print int(x, 2)
0b10
是一个整数。 bin(2)
是 '0b10' 这是一个字符串。您必须打印 int('0b10', 2)
才能打印 2
Python 2.6/2.7
我有以下程序。
print 0b10
def p_m(x):
print x
p_m(bin(2))
输出:
2
0b10
我想在 p_m() 中打印的是“0b10”的 2(十进制值),这是我作为第一个参数传递给 p_m() 并得到的变量 x 中的值“0b10”并仅打印该 x。
为什么函数内部的 print x
不像程序中的第一行那样工作?
在p_m()的打印语句中我应该怎么做才能将“0b10”的值打印为2.
print 0b10
给出 2。
这是因为所有的数字都以二进制形式存储在python中。
bin(2)
是一个字符串。所以它给你二进制值。
您可以使用 print int('0b10', 2)
。这里 2 表示基数,'0b10' 是您要转换的二进制文件。 0b
0b10
的一部分不是强制性的,因为 int()
已经知道它会将其转换为基数 2。Documentation 说,
The default base is 10. The allowed values are 0 and 2-36. Base-2, -8, and -16 literals can be optionally prefixed with 0b/0B, 0o/0O/0, or 0x/0X, as with integer literals in code.
使用 2 base parameter:
将字符串0b10
转换回 int
def p_m(x):
print int(x, 2)
0b10
是一个整数。 bin(2)
是 '0b10' 这是一个字符串。您必须打印 int('0b10', 2)
才能打印 2