Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: honza 28. 08. 2015, 18:07:17
-
Ahoj,
jsem tu jeste s jednim problemem..zjistil jsem, ze nerozumim poradne bitwise operacim.
Mam tyto konstatnty a kod:
pmask=0x1
# case A
xmask = 0x00fe
xshift = 1
ymask = 0x7f00
yshift = 8
pshift = 0
x_addr = (addr&xmask) >> (xshift)
y_addr = (addr&ymask) >> (yshift)
a_pol = (addr&pmask) >> (pshift)
Coz funguje spravne, a toto take funguje spravne:
# case B
xmask = 0x03ff
xshift = 12
ymask = 0x01ff
yshift = 22
pshift = 11
x_addr = (addr >> xshift) & xmask
y_addr = (addr >> yshift) & ymask
a_pol = (addr >> pshift) & pmask
Chtel bych pouzit jednotny zapis bit operaci ("x_addr = (addr >> xshift) & xmask" vs "x_addr = (addr&xmask) >> (xshift)"), ale pak je potreba prepocitat prislusne konstanty, a to se mi nedari (uz asi 2h).
Dekuji chytrym poctarum,
-
Pokud se jedná o Javu tak pozor na rozdíl mezi >> a >>>.
-
Pokud se jedná o Javu tak pozor na rozdíl mezi >> a >>>.
Diky, pardon. Ne, je to python.
-
Dost v tom dotazu postradam otazku :) Konstatovat, ze tomu asi nerozumis a ze se ti to nedari je sice hezky, ale jestli chces poradit, tak budes muset rict, co se snazis vypocitat a proc si myslis, ze se ti to nedari.
Pokud mas
(x >> shift1) & mask1
a chces to prevest na
(x & mask2) >> shift2
tak plati
mask2 = mask1 << shift
shift2 = shift1
Na tom neni nic slozityho - pokud chces maskovat posunuty cislo, tak musis masku posunout stejne jako to cislo, to je cely.
-
Pardon, preklep - "shift" ma byt samozrejme "shift1"
-
Dost v tom dotazu postradam otazku :) Konstatovat, ze tomu asi nerozumis a ze se ti to nedari je sice hezky, ale jestli chces poradit, tak budes muset rict, co se snazis vypocitat a proc si myslis, ze se ti to nedari.
Pokud mas
(x >> shift1) & mask1
a chces to prevest na
(x & mask2) >> shift2
tak plati
mask2 = mask1 << shift
shift2 = shift1
Na tom neni nic slozityho - pokud chces maskovat posunuty cislo, tak musis masku posunout stejne jako to cislo, to je cely.
Mirek Prymek: dekuji! presne takovou nazornou ukazku jsem si pral, uz se mi to povedlo, vazne diky.
PS: Otazka, i kdyz bez ? se myslim dala vytusit z meho posledniho odstavce.
-
Mirek Prymek: dekuji! presne takovou nazornou ukazku jsem si pral, uz se mi to povedlo, vazne diky.
PS: Otazka, i kdyz bez ? se myslim dala vytusit z meho posledniho odstavce.
Rado se stalo.
Vzdycky je lepsi otazky pokladat tak, ze popises problem, pak napises, co jsi zkousel a jak se vysledek lisi od toho, co ocekavas.