[elektro] Osztas-szorzas
hg12345
hg12345 at freemail.hu
Fri Jul 10 08:39:07 CEST 2009
Hi!
Nincs semmilyen trükk, egy művelet annyi bites amennyire megírják! A C nem kezeli közvetlenül a status flageket attól azok még működnek, és hozzáférhetők :-() persze az eredmény kérdés, a fordító további műveleteket is beszúr ami megváltoztathatja a status flageket, az optimalizációról nem is beszélve !
A 1<<32 több okból is kiabálni fog, max 1LL<32 adható meg mint konstans, persze ha a forditó kezeli a long long típusokat.
A C-ben de más fordítók tartalmaznak a (* és /) kivül hasonló müveleteket, de mint függvény!
pl.: integer maradékos osztás div, ldiv és lldiv néven ezeket használják a (/ és %) müveletek.
A div pont úgy működik mint az ASM-ben megírt osztás vissza adja az hányadost és a maradékot, pont annyi biten amire az osztás írták.
Acs Gabor <agabor at electrodesign.hu> írta:
> Na jó, rájöttem, hogy itt biztos valami trükköt én nem ismerek, mert azt
> hinném magamtól, hogy az 1<<32 egy 32 bites számnál 0 lesz, úgyhogy
> kérnék egy kis segítséget. Már ha C-ro"l beszélünk, assemblynél meg
> bemegy valamelyik státusz regiszter flag-jébe.
>
>
> Gábor
>
> 2009.07.10. 0:09 keltezéssel, Acs Gabor írta:
> > Azt miért kell csinálni, hogy 1<<32 ?
> >
> > Szerintem akkor kell 64 bit, ha a>2^31, mert ilyenkor már túlcsordulna a
> > szorzás.
> >
> >
> > Gábor
> >
> > 2009.07.09. 16:49 keltezéssel, Gergely Vakulya írta:
> >
> >> Udvozletem!
> >>
> >> Adott egy muvelet:
> >> y=(1<<32)*a/b
> >> (a/b<=1, y egesz resze erdekel, 32 biten)
> >>
> >> Ezt hogy lehet a legegyszerubben, csak 32bites valtozok hasznalataval elvegezni?
> >>
> >> (DDS osztasi aranyat kell kiszamolni.)
> >>
> >> Ha azt irom, hogy ((long long)(1)<<32)*a/b, akkor valoszinu jo lesz,
> >> de kell ide 64 bit?
> >>
> >> By(t)e
> >> TBS::Antiemes
> >>
> >> -----------------------------------------
> >> elektro[-flame|-etc]
> >>
> >> _____________ NOD32 4188 (20090625) Információ _____________
> >>
> >> Az üzenetet a NOD32 antivirus system megvizsgálta.
> >> http://www.nod32.hu
> >>
> >>
> >>
> >>
> >>
> > -----------------------------------------
> > elektro[-flame|-etc]
> >
> > _____________ NOD32 4188 (20090625) Információ _____________
> >
> > Az üzenetet a NOD32 antivirus system megvizsgálta.
> > http://www.nod32.hu
> >
> >
> >
> >
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list