一个= 0100;打印; 64如何扭转这个? [英] a=0100; print a ; 64 how to reverse this?

查看:71
本文介绍了一个= 0100;打印; 64如何扭转这个?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题:

如何从整数中获取二进制数,反之亦然?

我知道最简单的方法是:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆