[python] Re: Začiatočník - bitové operace
Martin Blazik
martin.blazik na premiumsms.cz
Pátek Říjen 21 11:06:33 CEST 2005
Ja bych vrele doporucoval prozkoumat modul struct a funkce pack() a
unpack() ty delaji presne to co potrebujes. Takze muzes pracovat
normalne s int a pak jen prevedes do byte reprezentace. Pokud bys
potreboval neco konkretniho napis mi primo na mail, uz jsem v pythonu
prgal naky komunikacni knihovny.
lachtan
bobo napsal(a):
>Vďaka za odpoveď, aj keď tak trochu mimo. Nemám problém s bitmi ale bytmi.
>Presnejšie potrebujem komunikovať s mikroprocesorom. Telegram bude v ASCII
>znakoch, ale niektoré veci by mali byť ako jednoduché byty, napr. adresa,
>kontrolný súčet, stavová informácia a pod.
>Ak by som chcel iba konštantu, tak to nie je problém do Stringu vložiť jeden
>byte ako nejaký kód. Ale potom už s tým neviem pohnúť (inkrementácia a
>pod.). Prípadne ak nad tým urobím matematickú operáciu, prevedie to
>automaticky na Int a už to neviem napchať do Stringu ako jeden znak.
>
>----- Original Message -----
>From: "geon" <geon na post.cz>
>Newsgroups: cz.comp.lang.python
>Sent: Thursday, October 20, 2005 10:47 PM
>Subject: Re: Začiatočník - bitové operace
>
>
>
>
>>bobo napsal(a):
>>
>>
>>>Skúšam prvé nesmelé kroky s Pytonom. Preštudoval som pár tutoriálov a
>>>príkladom. Potrebujem pracovať s premennou typu Byte. Predtým som
>>>programoval v C a tam to nebol problém, ale Pyton mi to konvertuje na
>>>Int.
>>>Nevie mi niekto pomôcť radou???
>>>
>>>
>>>
>>>
>>Python nezná proměnnou typu Byte. Vše co mu napíšeš jako číslo, je
>>obyčejné číslo. K tomu jsou zaměřeny i bitově orientované operace, které
>>správně fungují nad obyčejnými čísly a vrací obyčejné číslo. Bitový převod
>>i obě konverze se dějí "uvnitř".
>>
>>
>>
>>>>>5 <<2
>>>>>
>>>>>
>>20
>>
>>
>>>>>5>>2
>>>>>
>>>>>
>>1
>>
>>
>>>>>int(str(101))
>>>>>
>>>>>
>>101
>>
>>
>>>>>int(str(101),2)
>>>>>
>>>>>
>>5
>>
>>Máš-li tedy proměnnou "typu byte", musíš z ní nejdříve udělat obyčejné
>>číslo, pak použít operaci a výsledek zpětně převést na "byte". Na zpětný
>>převod je nejlépe si udělat funkci, protože pokud vím, Python toto nemá v
>>základní výbavě.
>>
>>A nebo si můžeš udělat funkce přímo na bitový posun nad císly tyu 10110011
>>a ušetřit tak převody mezi číselnými soustavami.... Možná i na to existuje
>>nějaký modul, ale na prosté bitové operace by neměl být problém vymyslet
>>funkce....
>>
>>--
>>geon
>>Vyjímka je pravidlo. Rekurzivní.
>>
>>
>
>
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Python mailing list
>Python na py.cz
>http://www.py.cz/mailman/listinfo/python
>
Další informace o konferenci Python