[elektro] Munka (C kérdés)

hg12345 hg12345 at freemail.hu
Sun Sep 18 08:34:42 CEST 2011


Hi!

igazság szerint 32biten a legtöbb felsorolt változatban se sebesség se méret differencia nincs folog ARM7v utasítás keszlet mellett (CORTEX M3)


potyo <potyo.ada at gmail.com> írta:
>Az & nem ugyanazt adná. Én inkább count^0xFFFF-t írnék, vagy egyszerűen>
count!=0xFFFF-t.>
>
2011/9/17 Acs Gabor <agabor at electrodesign.hu>>
>
> És vajon melyik a leggyorsabb?>
> Lehet hogy az &&0xffff ? Bár mostmár nem vagyok benne biztos, hogy ebben>
> az esetben működik.>
>>
>>
> Gábor>
>>
> 2011.09.17. 17:55 keltezéssel, hg12345 írta:>
> > Köszönöm,>
> > pont ezt kerestem, hogy miért igy csinálja.>
> >>
> > Amúgy sokkal egyszerűbb<0xFFFF feltétellel vizsgálni...>
> >>
> > Üdv>
> >>
> >>
> > Andrei Purdea<purdea.andrei at gmail.com>  írta:>
> >>> Ez miért nem müködik?>>
> >>>>
> >> uint16_t  count;>>
> >> if (~count)>>
> >>   count++;>>
> >>>
> > http://std.dkuug.dk/jtc1/sc22/open/n2794/n2794.pdf>>
> > nézd a 70-es oldalon (82-es pdf oldal) a 4-es bejegyzést>>
> > A C99 standard szerint, negálás előtt a count változó promoválva van>>
> > egy 32bites tipusra.>>
> > Mivel unsigned (uint16_t), ezért ez azt jelenti hogy balról meg van>>
> > tűzdelve egy rakás zéróval, ami mindig zéró marad. A ~count ezért>>
> > mindig non-zéró marad, tehát igaz.>>
> > Az újracastolás helyett egy másik megoldás: Ha a változód tipusa>>
> > int16_t (signed), akkor a promóció alkalmával sign-extended lesz,>>
> > mármint>>
> > a sign bit-el van megtűzdelve balról. így amikor count=0xffff, akkor>>
> > promoted formában 0xffffffff. És a count nincs növelve amikor eléri a>>
> > 0xffff-t (vagyis a -1-et)>>
> > ----------------------------------------->>
> >            elektro[-flame|-etc]>>
> >>
> >>
> > ----------------------------------------->
> >            elektro[-flame|-etc]>
> >>
> >   _____________ NOD32 6433 (20110903) Információ _____________>
> >>
> > Az üzenetet a NOD32 antivirus system megvizsgálta.>
> > http://www.nod32.hu>
> >>
> >>
> >>
>>
> ----------------------------------------->
>          elektro[-flame|-etc]>
>>
----------------------------------------->
          elektro[-flame|-etc]



More information about the Elektro mailing list