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,