Pretypovavani promennych v cecku
Jiri Bezstarosti
jiri@bezstarosti.cz
Úterý Leden 22 12:36:32 CET 2008
To je zajimave, ze nekdo napise mene pismen, aby to zjistil, a nekdo
vice pismen, aby se zeptal. Ne, nechci rypat, ale fakt se na to
podivejte, kolik pismen ma dotaz a kolik pismen zdrojak, pro overeni jak
to je ;). A pokud nekdo pise v Ccku, prece musi nutne mit na cem ten
experiment udelat, protoze samotna znalost C bez napsani jedineho
programku je k nicemu (lidsky: ciste akademicka znalost programovaciho
jazyka je na nic).
Opravdu se nechci do nikoho navazet a ani nikoho deptat a podobne, ale
prosim, zkuste vzdycky nejprve projevit nejakou snahu o samostatnost. Je
jasne, ze cloveka hned vsechno nenapadne, ale nekdy je fakt mnohem
rychlejsi se dobrat odpovedi samostane udelanym experimentem, nez
dotazem, kde cekate na odpoved, jestli nekdo neodpovi.
--
Jiri Bezstarosti
Pavel Troller napsal(a):
>>Chtel bych se zeptat, zda je jedno jestli pretypuji v C kompilatoru ve vyrazu prvni operator nebo posledni, zda mi to vrati vzdy stejny vysledek ? Jde mi o to zda si prekladac nejdrive projde vsechny promenne a podle nejpresnejsi promenne zvoli typ promenne pro mezioperace a nebo to funguje nejak jinak ?
>>
>>Bude vysledek techto vyrazu stejny ?
>>
>>int16=100*((float)int16/1024)
>>int16=100*(int16/(float)1024)
>>int16=(float)100*(int16/1024)
>>
>>tohle samozrejme vrati vysledej jiny, jelikoz se pouzije deleni bez desetinnych mist:
>>int16=100*(int16/1024)
>>
>>
>>dekuji
>>Milos Sula
>>
>>
>Zdravim,
> rekl bych, ze 1 a 2 budou stejne, ale 3 bude jine - deleni v zavorce se
>vypocte v int a pak se znasobi floatem 100, coz neni ono.
> Kratky test (s jinymi hodnotami) to prokazuje:
>
>#include <stdio.h>
>
>int main(void) {
> int a,b;
>
> a=5;
> b=13;
>
> printf("%f, %f, %f\n",
> 100*((float)a/b),
> 100*(a/(float)b),
> (float)100*(a/b)
> );
>}
>
>$ gcc -o test2 test2.c
>$ ./test2
>38.461540, 38.461540, 0.000000
>
>S pozdravem Pavel Troller
>_______________________________________________
>HW-list mailing list - sponsored by www.HW.cz
>Hw-list@list.hw.cz
>http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
>
Další informace o konferenci Hw-list