Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



jak naformátuju binární výstup?

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: jak naformátuju binární výstup?

Autor: igorr

22:15:17 27.04.2011

[code]
# Ta tečka tam být nemusí:
>>> "%#032d" % int(bin(15)[2:])
'00000000000000000000000000001111'

# no, a tohle je úplně nejlepší (ještě rychlejší než format v py3):
bin(15)[2:].rjust(32, "0")
'00000000000000000000000000001111'
[/code]

Citovat příspěvek

 

Re: jak naformátuju binární výstup?

Autor: igorr

21:54:56 27.04.2011

Co to tu pořád řešíte za hovadiny? V Python 3 se používá [i]format()[/i]. V Python 2.x tam máte funkci [i]bin()[/i].
[code]
# Python 3:
>>> "{0:032b}".format(15)
'00000000000000000000000000001111'

# Python 2.x:
>>> bin(15)
'0b1111'

# zarovnání na určitý počet čísel:
>>> "%#032.d" % int(bin(15)[2:])
'00000000000000000000000000001111'
[/code]
PS: A není pravda, že BS() je rychlejší, než bs().
[code]
# Python 2.x:
>>> import timeit
>>> print timeit.Timer('bs(15)', 'from __main__ import bs').timeit(number=100000)
2.46166491508
>>> print timeit.Timer('BS(15)', 'from __main__ import BS').timeit(number=100000)
3.43558311462
print timeit.Timer('"%#032.d" % int(bin(15)[2:])').timeit(number=100000)
0.417820930481

# Python 3:
import timeit
>>> print(timeit.Timer('"{0:032b}".format(15)').timeit(number=100000))
0.271328926086
[/code]

Citovat příspěvek

 

Re: jak naformátuju binární výstup?

Autor: ppk1

17:33:46 22.04.2011

sice to vypadá složitě ale je to krapet rychlejší

Citovat příspěvek

 

Re: jak naformátuju binární výstup?

Autor: Tomix2010

19:39:59 12.04.2011

To už vypadá složitě, radši takhle:

[code]
def BS(cislo,bit=32):
bstring=''
for x in range (bit):
bstring = str((cislo & (1< return bstring
[/code]


;)

Citovat příspěvek

 

Re: jak naformátuju binární výstup?

Autor: ppk1

1:39:59 11.04.2011

mělo tam být

if s<=1:
...

:(

Citovat příspěvek

 

Re: jak naformátuju binární výstup?

Autor: ppk1

1:33:11 11.04.2011

Tomix2010 Napsal:
-------------------------------------------------------
> ppk1 Napsal:
> --------------------------------------------------
> -----
> > to byla blbost... paměť už mi neslouží
> > skus tohle
> > def bs(s):
> > return str(s) if s<=1 else
> bs(s>>1) +
> > str(s&1)
> >
> >
>
> Přidej tam parametr na počet kolik bitů se má
> zobrazit. (1..32)


def bs(s,nb=32):
r=""
for i in xrange(nb):
if s==1:
r=str(s)+r
s=0
else:
r=str(s&1)+r
s=s>>1
return r

představoval sis to něak takhle?
;)

Citovat příspěvek

 

Re: jak naformátuju binární výstup?

Autor: Tomix2010

23:07:06 10.04.2011

ppk1 Napsal:
-------------------------------------------------------
> to byla blbost... paměť už mi neslouží
> skus tohle
> def bs(s):
> return str(s) if s<=1 else bs(s>>1) +
> str(s&1)
>
>

Přidej tam parametr na počet kolik bitů se má zobrazit. (1..32) :)

Citovat příspěvek

 

Re: jak naformátuju binární výstup?

Autor: Tomix2010

23:01:53 08.04.2011

Správně je to co psal "mol"

To tvoje převede int na bin-řetězec:
např:

[code]
>>> bs(127)
'1111111'

[/code]
Já jsem potřeboval výsledek
'01111111'

[code]
>>> print("bitmaska = {0:08b}".format(127))
bitmaska = 01111111
[/code]

Citovat příspěvek

 

Re: jak naformátuju binární výstup?

Autor: ppk1

12:23:56 07.04.2011

to byla blbost... paměť už mi neslouží :D
skus tohle
def bs(s):
return str(s) if s<=1 else bs(s>>1) + str(s&1)

Citovat příspěvek

 

Re: jak naformátuju binární výstup?

Autor: ppk1

12:05:32 07.04.2011

nemá to nahodou být "bitmaska = %.8b"%bitmaska ??

Citovat příspěvek

 

Re: jak naformátuju binární výstup?

Autor: Tomix2010

19:32:58 01.04.2011

Díky, zkoušel jsem to takhle a to jen odsazuje:

print("bitmaska = {0:8b}".format(bitmaska))

Citovat příspěvek

 

Re: jak naformátuju binární výstup?

Autor: mol

20:19:58 31.03.2011

[code]print("x = {0:08b}".format(x))[/code]

Citovat příspěvek

 

jak naformátuju binární výstup?

Autor: Tomix2010

22:19:52 30.03.2011

příklad:
[code]
x=15
print("x = {0:b}".format(x))
[/code]

Já bych ale potřeboval zobrazit vícero bitů, např 8,
takže výstupem by mělo být: 00001111

Zajímá mě jestli se toho dá docílit touhle formátovací funkcí?

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: