Sziasztok!
> Felado :
> Temakor: bit cserelo ( 12 sor )
> Idopont: Wed Sep 19 20:54:01 CEST 2007 CODER #2462
> - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
> Szio!
Szio!
>
> Egyszeruen keptelen vagyok megirni egy dekodolashoz szukseges bit-par
> felcserelo programot. Lehetoleg pascalban vagy basicben kellene ehhez:
> http://math-www.uni-paderborn.de/~axel/bliss/
> http://math-www.uni-paderborn.de/~axel/bliss/bliss.txt
Egy kis utmutatast/otletet adok, hatha segit. :-)
> A rot13 megvolt, uudecode megvolt, csak ez a bit swappolo kiboritott,
Miert, a swap altalaban egyszeru.
> atvaltani 2-es szamrendszerbe ott felcserelni majd vissza valahogy igy
> kepzelemel de nem jutottam el a mukodo megoldasig. Aki tud kerem
> segitsen kihamozni a vegso fajlt!
Miert bonyolitsuk az eletunket?
Miert kene atvaltani?
Leirom mondatszeru leirassal ugy durvan nagy korvonalakban en mit csinalnek.
Eloszoris csinalnek egy konstanst:
Konstans
bitmask : Tomb[1..16] of Szo=(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024,
2048, 4096, 8192, 16384, 32768]);
Tehat ez max 16 bit hosszusagu valtozohoz lesz jo nekunk, ha tobb
bithosszusagu valtozoval dolgozol akkor ezt tovabb kell szamolni, vagy
lehet
irni hatvany algoritmust a bitmask helyett, az mashol masra is hasznalhato
kesobb.
Ahhoz hogy cserelni tudjunk meg kell nezni szerepel-e az adott bit, vagyis
1-es e, ehhez a _ES_ muveletet hasznalnam.
Magyarul ha az x valtozoban meg szeretnem nezni az 5-odik bitet, akkor
eselnem a bitmask 5-odik elemevel, ha az eredmeny 1 akkor be van kapcsolva
az x valtozo 5-odik bitje, ha 0 akkor nincs. Ez csak egy feltételes
elagazas.
Bitek bekapcsolasara a vagyot hasznalnam.
Es innentol mar meg tudod irni a bitcserelo algoritmusodat logikai muveletek
alkalmazasaval. Csak gondolkodj.
Hasznalhatod a negaciot, az est es a vagyot.
Remelem a kezdo lokest sikerult megadni.
Laci
|