一个= 0100;打印; 64如何扭转这个? [英] a=0100; print a ; 64 how to reverse this?
问题描述
问题:
如何从整数中获取二进制数,反之亦然?
我知道最简单的方法是:
a = 0100
a
但是:
a = 100(我想要二进制数)
无法正常工作。
a .__ hex__存在
a .__ oct__存在
但是哪里是.__ bin__ ???
最简单的方法是什么?
非常感谢你。
7月17日9:09 pm,mosi< skawan ... @ gmail.comwrote:
问题:
如何从整数中获取二进制数,反之亦然?
我知道最简单的方法是:
a = 0100
a
但是:
a = 100(我想要二进制数)
不起作用。
a .__ hex__存在
a .__ oct__存在
但是在哪里a .__ bin__ ???
什么的最简单的方法吗?
非常感谢你。
这是一个草图;我会让你填写详细信息 - 你可能希望
来防范有趣的输入,例如b< 2.
>> def anybase(n,b,digits =''0123456789abcdef ''):
.... tmp = []
....而n :
.... n,d = divmod(n,b)
.... tmp.append(digits [d])
.... return''''。join(reverse(tmp))
....
>> anybase(1234,10)
''1234 ''
>> anybase(7,2)
''111''
>> [any基数(64,k)表示范围内的k(2,17)]
[''1000000'',''2101 '',''1000'',''224'',''144'',''121'',''100'',''71'',''64'',
''59'',''54'',''4c'',''48'',''44'',''40'']
>>>
HTH,
John
>
7月17日,9:09 pm,mosi< skawan ... @ gmail.comwrote:
问题:
如何从整数中获取二进制数,反之亦然?
我知道的最简单的方法是:
a = 0100
a
64
但是:
a = 100(我想要二进制数)
无法正常工作。
a .__ hex__存在
a .__ oct__存在
但是哪里是.__ bin__ ???
最简单的方法是什么?
非常感谢你。
这是一个草图;我会让你填写详细信息 - 你可能希望
来防范有趣的输入,例如b< 2.
>> def anybase(n,b,digits =''0123456789abcdef ''):
.... tmp = []
....而n :
.... n,d = divmod(n,b)
.... tmp.append(digits [d])
.... return''''。join(reverse(tmp))
....
>> anybase(1234,10)
''1234 ''
>> anybase(7,2)
''111''
>> [any基数(64,k)表示范围内的k(2,17)]
[''1000000'',''2101 '',''1000'',''224'',''144'',''121'',''100'',''71'',''64'',
''59'',''54'',''4c'',''48'',''44'',''40'']
>>>
HTH,
John
>
2007年7月17日星期二14:09:35 + 0300,mosi< sk ******* @ gmail.comwrote:
>
问题:
如何从整数中获取二进制数,反之亦然?
我知道最简单的方法是:
a = 0100
a
但是:
a = 100(我想要二进制)数字)
无法正常工作。
a .__ hex__存在
a .__ oct__存在
但是哪里是.__ bin__ ???
最简单的方法是什么?
非常感谢你。
自己编写?
类似于:
def bin( x):
来自数学导入日志
bits =(8如果x == 0则8 *(int(log(x)/ log(2))/ 8 +1))
返回''''。join([str((x> i)& 1)for i in range(bits)[:: - 1]])
虽然这可能很慢:/
-
使用Opera革命性的电子邮件客户端: http://www.opera.com/mail/
Problem:
how to get binary from integer and vice versa?
The simplest way I know is:
a = 0100
a
64
but:
a = 100 (I want binary number)
does not work that way.
a.__hex__ exists
a.__oct__ exists
but where is a.__bin__ ???
What`s the simplest way to do this?
Thank you very much.
On Jul 17, 9:09 pm, mosi <skawan...@gmail.comwrote:Problem:
how to get binary from integer and vice versa?
The simplest way I know is:
a = 0100
a
64
but:
a = 100 (I want binary number)
does not work that way.
a.__hex__ exists
a.__oct__ exists
but where is a.__bin__ ???
What`s the simplest way to do this?
Thank you very much.Here''s a sketch; I''ll leave you to fill in the details -- you may wish
to guard against interesting input like b < 2.
>>def anybase(n, b, digits=''0123456789abcdef''):
.... tmp = []
.... while n:
.... n, d = divmod(n, b)
.... tmp.append(digits[d])
.... return ''''.join(reversed(tmp))
....>>anybase(1234, 10)
''1234''
>>anybase(7, 2)
''111''
>>[anybase(64, k) for k in range(2, 17)]
[''1000000'', ''2101'', ''1000'', ''224'', ''144'', ''121'', ''100'', ''71'', ''64'',
''59'', ''54'', ''4c'', ''48'', ''44'', ''40'']>>>
HTH,
John
On Jul 17, 9:09 pm, mosi <skawan...@gmail.comwrote:Problem:
how to get binary from integer and vice versa?
The simplest way I know is:
a = 0100
a
64
but:
a = 100 (I want binary number)
does not work that way.
a.__hex__ exists
a.__oct__ exists
but where is a.__bin__ ???
What`s the simplest way to do this?
Thank you very much.Here''s a sketch; I''ll leave you to fill in the details -- you may wish
to guard against interesting input like b < 2.
>>def anybase(n, b, digits=''0123456789abcdef''):
.... tmp = []
.... while n:
.... n, d = divmod(n, b)
.... tmp.append(digits[d])
.... return ''''.join(reversed(tmp))
....>>anybase(1234, 10)
''1234''
>>anybase(7, 2)
''111''
>>[anybase(64, k) for k in range(2, 17)]
[''1000000'', ''2101'', ''1000'', ''224'', ''144'', ''121'', ''100'', ''71'', ''64'',
''59'', ''54'', ''4c'', ''48'', ''44'', ''40'']>>>
HTH,
John
On Tue, 17 Jul 2007 14:09:35 +0300, mosi <sk*******@gmail.comwrote:
>
Problem:
how to get binary from integer and vice versa?
The simplest way I know is:
a = 0100
a
64
but:
a = 100 (I want binary number)
does not work that way.
a.__hex__ exists
a.__oct__ exists
but where is a.__bin__ ???
What`s the simplest way to do this?
Thank you very much.
Write your own?
something like:
def bin(x):
from math import log
bits = (8 if x == 0 else 8*(int(log(x)/log(2))/8+1))
return ''''.join([str((x >i) & 1) for i in range(bits)[::-1]])
though that''s probably slow :/
--
Using Opera''s revolutionary e-mail client: http://www.opera.com/mail/
这篇关于一个= 0100;打印; 64如何扭转这个?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!