Portál AbcLinuxu, 14. července 2025 06:54


Dotaz: Převod hexa do binár a zpět v Pythonu

6.6.2006 10:16 Rover | skóre: 10
Převod hexa do binár a zpět v Pythonu
Přečteno: 597×
Odpovědět | Admin
Zdravím,

nějak nemůžu přijít na způsob (či funkci), která umí převádět v pythonu z hexa na binár a naopak...

paradíte někdo?
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

6.6.2006 10:47 qapko
Rozbalit Rozbalit vše Re: Převod hexa do binár a zpět v Pythonu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pozri na hex(number) a int(x, base).
6.6.2006 11:19 Rover | skóre: 10
Rozbalit Rozbalit vše Re: Převod hexa do binár a zpět v Pythonu
OK... to vypadá dobře :)

Totiž jsem potřeboval u hexa čísla uložené v MySQL zjistit jestli je např sedmý bit 0 nebo 1 ..... a vyhloubal jsem že by mohl pomoci přímo sql příkaz:
select * from tabulka where sloupec & 0x40 > 0
vidíte někdo snažší cestu?
            
6.6.2006 13:03 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Převod hexa do binár a zpět v Pythonu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zdravím,

nějak nemůžu přijít na způsob (či funkci), která umí převádět v pythonu z hexa na binár a naopak...

paradíte někdo?
Tím binárem myslíš opravdu _řetezec_ jedniček a nul nebo jen vnitřní reprezentaci? Pokud chceš pouze testovat nastavení sedmého bitu, tak třeba takto:
a = '0x56'
if int(a, 16) & 0x40:
  print 'sedmy bit je jednicka'
else:
  print 'sedmy bit je nula'
6.6.2006 14:38 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Převod hexa do binár a zpět v Pythonu
Ale kuš - chyba. Sedmý bit je přece 0x80, nikoli 0x40.
6.6.2006 16:40 Rover | skóre: 10
Rozbalit Rozbalit vše Re: Převod hexa do binár a zpět v Pythonu
odkdy??? :)

když si přeložím 40hexa na binár tak mi vyjde 1 000 000
6.6.2006 19:57 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Převod hexa do binár a zpět v Pythonu
odkdy??? :) když si přeložím 40hexa na binár tak mi vyjde 1 000 000
Přesně tak. Ale čtyři z pěti programátorů doporučují bity počítat od nuly. Nechci zde rozebírat číselné soustavy, ale dva na nultou je jedna. No a dva na sedmou je 0x80.

Využívám této příležitosti i k tomu, abych ukázal další pythonní možnost konverze dec->hex
>>> '0x%02x' %(2**7)
'0x80'
Je to sice pomalejší, ale je tam víc formátovacích možností.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.