[python] Re: Zaèiatoèník - bitové operace

bobo fraj na zmail.sk
Pátek Říjen 21 09:16:35 CEST 2005


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í.





Další informace o konferenci Python