Ceckarsky kviz III

Petr Tomasek tomasek@etf.cuni.cz
Sobota Červen 6 21:28:47 CEST 2009


On Sat, Jun 06, 2009 at 09:16:03PM +0200, Petr Tomasek wrote:
> On Sat, Jun 06, 2009 at 06:36:50PM +0200, Jan Waclawek wrote:
> > >> >Pripadne je mozne delat test ne na 0x8000, ale na 0x4000 a pak to fungovat bude. 
> > >> 
> > >> To je pravda.
> > >> 
> > >> >Jestli to chcete na plnou hubu, tak to bude tim, ze promenna typu int a delku 2 byty bude nabyvat ve zminem prikladu hodnot 0-0x7fff.
> > >> 
> > >> Hmmmm... Mozete to prosim odovodnit?
> > >
> > >Zrejme prekladac hodnotu 0x8000 zkrouhne na 0x0000, protoze se "nevleze" do daneho
> > >typu?
> > 
> > 
> > No, znie to sice vierohodne, ale teraz pride pointa: povodny autor otazky experimentoval s nastaveniami prekladaca, a zistil, ze ak sa preklada so zapnutymi optimalizaciami, tak LEDka neblika.
> > 
> > Lenze ak sa preklada s vypnutymi optimalizaciami, tak LEDka blika.
> > 
> > Myslite, ze *zapnutim* optimalizacie sa *prida* operacia ("zkrouhnutie")?
> > 
> > wek
> 
> No a nebo optimalizuje primo danou podminku a zjisti, ze pro signed int
> musi byt (i & 0x8000) vzdy 0...
> 
> P.

Lepe receno, asi mam moc velkou fantazii, ale predstavuji si ty optimalizace takto:

 a) orezani konstanty 0x8000 podle datoveho typu, vysledek bude 0. (Tady by to
asi melo hlasit nejakou chybu).

 b) optimalizace i&0 => 0

 c) optimalizace podminky...



-- 
Petr Tomasek <http://www.etf.cuni.cz/~tomasek>
Jabber: butrus@jabbim.cz
SIP: butrus@ekiga.net



Další informace o konferenci Hw-list