Newsgroup: it.hobby.elettronica.digitale
Titolo: A mod K

Sono giorni che tento di trovare l'algoritmo per realizzare questa "semplice
operazione".... ne ho trovato uno per differenze successive ma non ne sono
molto sicuro.....
Vi lascio le specifiche dell'esercizio con la speranza che qualcuno possa
aiutarmi... speriamo il più presto possibile!!
Fornire un SE che esegue l'operazione AmodK->A
con Aregistro 32 bit e K costante 16 bit
Quello che mi serve è solo l'algorimo realizzato con op elementari come
somme (in comp2 e traslazioni) per intenderci una cosa tipo la
moltiplicazione realizzata dalla cpu....
Il problema più grande sorge quando il prof chiede anche....
Studiare la variante con la funizione f(X)=Xmod2 con Xa 32 bit
.... non capisco infatti come poterla utilizzare per aumentare la velocità
delll'alg, probabilmente è questo infatti il motivo del suo utilizzo

Sono ben accetti anche indirizzi dove poter trovare info a riguardo...
Grazie

delll'alg, probabilmente è questo infatti il motivo del suo utilizzo
Devi fare X mod 2 ? Ho capito bene ?
Scusa ma X mod 2 e' il calcolo piu' semplice del mondo e il risultato
e' 0 se bit meno significativo di X e' 0 e 1 altrimenti.
Ciao, Massimo
E-Mail    
max...@libero.it
Visita la pagina dedicata ai microcontrollori ST62
all'indirizzo 
http://digilander.iol.it/max4000

 Studiare la variante con la funizione f(X)=Xmod2 con Xa 32 bit
Per questo, basta prendere l'ultimo bit :-)
Ovvero:
A mod 2 = A and 1
Se invece K non č una potenza del 2, credo si potrebbe scomporlo bit a bit
(quindi considerarlo come somma di potenze di 2) e vedere se ne viene fuori
un algoritmo decente.
Ovvero scomporre K in
K = a1 * 2^0 + a2 * 2^1 + ... + a16 * 2^15
e con a1...a15 che possono assumere solo i valori 0 e 1
Poi perň bisogna mettersi con carta e penna e studiare le relazioni tra il
modulo K ed i moduli dei suoi bits :-)))
--
Alessandro Monti

 riguardo...
Ho visto che ti hanno gia' risposto alla domanda specifica.
In generale si tratta di fare una divisione e di buttare via la parte
necessaria al calcolo del quoziente.  Non conosco metodi che vadano
"direttamente" al resto che non siano variazioni degli algoritmi di
divisione.
Puoi trovare informazioni on-line su queste slides:
(al momento il web di Berkeley non risponde :-( )
http://cch.loria.fr/documentation/IEEE754/patterson/slides.pdf
Puoi trovare qui un implementazione,
http://www.stanford.edu/~paaske/algorithm.html
e qui un survey ed un programma,
http://umunhum.stanford.edu/~oberman/divider.html
Ma non penso che te ne farai molto.  Ti occorre un libro di "Computer
Arithmetic", ce ne sono molti, 
p.es
. su Amazon. (
www.amazon.com
)
Penso un buon acquisto potrebbe essere "Computer Architecture -- A
Quantitative Approach" di Hennessy e Patterson, Ed. Morgan-Kaufmann, che
ha una appendice di David Goldberg sulla Computer Arithmetic molto
chiara.
Una monografia sull'argomento e' "Division and Square Root" di
Ercegovac-Lang, Ed. Kluwer, ma e' una lettura decisamente ostica.
Follow-up impostato su it.discussioni.ingegneria perche'
it.hobby.elettronica.digitale qui non lo prendo.
-- 
Lorenzo Di Gregorio

 Studiare la variante con la funizione f(X)=Xmod2 con Xa 32 bit
X mod 2 = X AND 1.
--
Bye! Lorenzo Lutti
http://www.geocities.com/SiliconValley/Peaks/6258/

modulo K ed i moduli dei suoi bits :-)))
Il modulo non e' un operatore lineare, quindi la scomposizione da te
suggerita non penso che puo' portare a semplificazioni sull'algoritmo
da utilizzare.
