[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