Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » bitschieberei

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.01.2006, 11:33 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi, irgendwie gibts bei mir irgendwo da fehler wo ich irgendwie nich drauf komm. Folgendes:

Ein LZ77 algo:


C++:
        int ol = (offset << 5) + laenge;
        schreibeByte(ol >>> 8);
        schreibeByte(ol);


schreibeByte schreibt ein Byte in den ausgabestream.

Jedenfalls das funktioniert.

Nun aber das auslesen stimmt nicht ganz:


C++:
            ol = (inByte2) | (inByte << 8);

            offset = (ol >>> 5);
            laenge = (ol & offset);


da kommt dann teilweise
z.b

Code:
laenge=0 offset=4


raus, obwohl obiges korrekt geschrieben wird, was rauskommen sollte ist

Code:
laenge=1 offset=4



witzigerweise aber nicht immer, (also z.b nicht nur mit offsets > als 8 oder so.

offsets stimmen witzigerweise immer, nur die laenge eben nicht. Was hab ich da schon wieder falsch gemacht
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.01.2006, 11:41 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


omfg!


jetzt ist mir aufgefallen worans liegt. so ists richtig:

C++:
            laenge = (ol - (offset << 5));


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: