algoritmus kerdes

vajk fekete halaloszto at yahoo.co.uk
Wed Sep 26 23:12:36 CEST 2007


ja, es megegy:

egy ilyen szintu dolgot, ha a hatekonysag szamit, mindenfelekeppen assemblyben kell kigondolni, legfeljebb a vegen c-ben kodolod le.

ha nagyon-nagyon kritikus, akkor a 8-as periodust ki is lehet fektetni, vagy akar elore megirni 1-24-ig, optimalizalni es a fuggvenypointert allitgatni hogy melyiket hivja. Mondjuk valoszinuleg semmire nem mesz ha 8-asaval kurva gyors, 13-asaval meg sik bena.

bar lehet hogy hasznal ha a kis sliceokra gyorsabb mint a nagyobbakra, mert a kisebbre gondolom tobbszor hivjak...

akar lehetne csinalni egy verziot ami 1-8 bitet tud, egy masikat ami 9-16 es egy harmadikat ami 17-24 bitet, es a harom kozul a fv pointerrel szorakozni.

vajk

----- Original Message ----
From: vajk fekete <halaloszto at yahoo.co.uk>
To: elektro at tesla.hu
Sent: Wednesday, 26 September, 2007 10:59:10 PM
Subject: Re: algoritmus kerdes

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
-----------------------------------------
          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