|
Тема |
Re: Малииии [re: SoulDeaD] |
|
Автор | въпpoc (Нерегистриран) | |
Публикувано | 21.03.05 21:21 |
|
|
Срамота !
Представи си че трябва да умножаваш 32 битови числа. Ако пишеш програма за 32 битова машина на С операцията ще изглежда примерно така:
int A1,A2,B1,B2,B3;
B1=(short int) A1 * (short int) A2;
B2=*((short int *)&A1+1)**((short int *)&A2+1);
B3=(short int) A1 * *((short int *)&A2+1);
B3+=(short int) A2 * *((short int *)&A1+1);
B1+=0x10000*(short int) B3;
B2+=*((short int *)&B3+1);
.....
.....
като не написах всичко, но надявам се достатъчно за примера, в В1 и В2 ще е 64 битовия резултат.
На 64 битова машина бих умножавал така:
short int A1, A2;
int B1;
B1=A1*A2;
Хайде сега пак седни ми обяснявай, че първия пример като го компилираш на 64 битова машина ще върви толкова бързо колкото втория ! Защото първия пример е алгоритъм за 32 битова машина, което аз наричам 32 битов алгоритъм. Могат безброй много примери да се дадат, и даже няма нужда от тестове - очевадно е !
Хайде, със здраве.
|
| |
|
|
|