[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