RE: Pitanje za asistenta , a iz za druge koji bi pomogli ;)
1. Koristi dimenzije oblika 2^n, pa je tada ceil(log2(2^n))=n
2. Ako insistiras na ne-2^n brojevima, onda je ocigledno:
ceil(log2(2^n+k))=n + sign(k), k >= 0
, sto se svodi na pravilo: ako broj ima jednu jedinicu, onda je rezultat
pozicija te jedinice; ako ima vise jedinica, onda pozicija najteze
jedinice uvecana za 1.
Problem (2) je slozenosti O(n) ako se resava shift operacijom. Moze da
se resi u O(1) ako bi se napravio modifikovani tezinski koder koji
izdvaja najtezu jedinicu, uz modifikaciju da dodaje +1 na rezultat ako
najteza jedinica nije jedina - suludo komplikovan pristup u odnosu na
obican koder koji se koristi za resavanje problema (1) u O(1) vremenu.
Ako bi pravio da ti svi elementi imaju dimenziju 2^n, cak i tamo gde ih
ne koristis do kraja, nece glava da te boli. Npr. ako koristis 20 bita u
ROM memoriji, mozes slobodno da iskoristis ROM sa 32-bitnom sirinom reci
- jedan modul, nesto zica visi, i gotovo. Ako hoces da stedis, tj. da
nemas neiskorisceni prostor u ROM modulu: uzmes 3 modula sa 8-bitnom
sirinom reci ili 5 sa 4-bitnom. U oba slucaja - vise posla i vece
zauzece prostora na ploci. Euklid ne vazi u racunarstvu...
pozdrav,
zoranh
-----Original Message-----
From: Alic Bojan [mailto:nrider@panet.co.yu]
Sent: Tuesday, April 19, 2005 7:17 PM
To: vlsi-nastava@titan.etf.bg.ac.yu
Subject: [vlsi-nastava] Pitanje za asistenta , a iz za druge koji bi
pomogli ;)
Koju biblioteku da koristim da bih mogao iskoristiti operaciju
Log2Upper ( broj) , tj. hteo bih da izracunam logaritam sa osnovom 2..
Mozda i ne koristim dobru definiciju matemeticke operacije...
Unapred hvala
2. Ako insistiras na ne-2^n brojevima, onda je ocigledno:
ceil(log2(2^n+k))=n + sign(k), k >= 0
, sto se svodi na pravilo: ako broj ima jednu jedinicu, onda je rezultat
pozicija te jedinice; ako ima vise jedinica, onda pozicija najteze
jedinice uvecana za 1.
Problem (2) je slozenosti O(n) ako se resava shift operacijom. Moze da
se resi u O(1) ako bi se napravio modifikovani tezinski koder koji
izdvaja najtezu jedinicu, uz modifikaciju da dodaje +1 na rezultat ako
najteza jedinica nije jedina - suludo komplikovan pristup u odnosu na
obican koder koji se koristi za resavanje problema (1) u O(1) vremenu.
Ako bi pravio da ti svi elementi imaju dimenziju 2^n, cak i tamo gde ih
ne koristis do kraja, nece glava da te boli. Npr. ako koristis 20 bita u
ROM memoriji, mozes slobodno da iskoristis ROM sa 32-bitnom sirinom reci
- jedan modul, nesto zica visi, i gotovo. Ako hoces da stedis, tj. da
nemas neiskorisceni prostor u ROM modulu: uzmes 3 modula sa 8-bitnom
sirinom reci ili 5 sa 4-bitnom. U oba slucaja - vise posla i vece
zauzece prostora na ploci. Euklid ne vazi u racunarstvu...
pozdrav,
zoranh
-----Original Message-----
From: Alic Bojan [mailto:nrider@panet.co.yu]
Sent: Tuesday, April 19, 2005 7:17 PM
To: vlsi-nastava@titan.etf.bg.ac.yu
Subject: [vlsi-nastava] Pitanje za asistenta , a iz za druge koji bi
pomogli ;)
Koju biblioteku da koristim da bih mogao iskoristiti operaciju
Log2Upper ( broj) , tj. hteo bih da izracunam logaritam sa osnovom 2..
Mozda i ne koristim dobru definiciju matemeticke operacije...
Unapred hvala
- References:
- Pitanje za asistenta , a iz za druge koji bi pomogli ;)
- From: "Alic Bojan" <nrider@panet.co.yu>
- Pitanje za asistenta , a iz za druge koji bi pomogli ;)
Previous by date: Re: Pitanje za asistenta , a iz za druge koji bi pomogli ;)
Next by date: ddr
Previous by thread: Re: Pitanje za asistenta , a iz za druge koji bi pomogli ;) Next by thread: ddr
Previous by thread: Re: Pitanje za asistenta , a iz za druge koji bi pomogli ;) Next by thread: ddr