algoritmus kerdes
vajk fekete
halaloszto at yahoo.co.uk
Wed Sep 26 22:59:10 CEST 2007
persze, ez az alap, es utanna lehet trukkozni.
pl akarhany bites a szelet, minden 8-adik ugyanolyan offszeten fog kezdodni.
tehat ha pl 13 bites, akkor az elso az 0. biten kezdodik, a masodik az a masodik byte 5. biten, stb.
1. 0.
2. 5.
3. 2.
4. 7.
5. 4.
6. 1.
7. 6.
8. 3.
9. 0.
Tehat elore lehet csinalni egy nyolcsoros tablazatot, ami a maszkot, eltolast es a byteleptetest tartalmazza.
A 13 bites peldanal maradva: 13 div 8 felkerekitve: 2 byte egy slice.
Az algoritmus:
van egy pointer, ami a tombben azt mutatja honnan kell venni a kov sliceot. Ez csak byte pontos. Kezdetben 0.
van egy masik, ami a 8soros tablazaton jar korbe.
veszek a pointertol kezdve 3 db byteot.
a tablazatbol kiolvasom a maszkot, amivel andolva a felesleges bitek nullazodnak.
szinten a tablazatbol kiolvasom, hogy mennyit kell shiftelni, hogy a slice a 3 byteos pufferem elejere keruljon.
szinten a tablazatbol kiolvasom, hogy most a tombpointert hany byte-al kell leptetni, leptetem. leptetem a tablazatpointert is.
kiadom a puffert
ha a tombot olvasni draga, akkor szorakozhatnek, hogy a felesleges bitek kimaszkolasa helyett/mellett atmasolom oket egy egybyteos atmeneti taroloba, es akkor minden korben egy byte-al kevesebbet kell olvasnom.
vajk
----- Original Message ----
From: Acs Gabor <agabor at electrodesign.hu>
To: elektro at tesla.hu
Sent: Wednesday, 26 September, 2007 10:30:34 PM
Subject: Re: algoritmus kerdes
Azért egy osztással ha kiszámolod, melyik byteban kezdődik, a maradékokat
meg kimaszkolod, a végén összeshifteled, szerintem nem olyan bonyolult.
Gábor
----- Original Message -----
From: "Fuzesi Arnold" <arnold.fuzesi.lista at gmail.com>
To: <elektro at tesla.hu>
Sent: Wednesday, September 26, 2007 7:59 PM
Subject: algoritmus kerdes
Hatékonyan 8 bites uC-n hogyan oldanátok meg C-ben:
van egy bazi nagy tömb. (n x 8 bit ugye)
ebből tetszőleges széles bitszeleteket kellene kivagni egymas utan sorban.
pl
13 biteseket.
vagy 5 biteseket
vagy 24 biteseket mondjuk 1-24 között.
De egy menetben mindig ugyan akkorákat.
Vmi nyelvi dolgot segítségül lehet hívni? Vagy fapadosan essek neki?
Köszi,
A.
-----------------------------------------
elektro[-flame|-etc]
_____________ NOD32 2550 (20070925) Információ _____________
Az üzenetet a NOD32 antivirus system megvizsgálta.
http://www.nod32.hu
-----------------------------------------
elektro[-flame|-etc]
___________________________________________________________
Want ideas for reducing your carbon footprint? Visit Yahoo! For Good http://uk.promotions.yahoo.com/forgood/environment.html
More information about the Elektro
mailing list