![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
ostatnio czytałem (przeglądałem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) dokumentacje Intela i wyczytałem, że główna róznica pomiędzy 64 a 32 bitowymi procesorami to to, że te pierwsze mają większy zakres dostępu do pamięci (wirtualnej i fizycznej). Słyszałem to też drogą ploteczkową. I teraz stąd moje pytanie: czy jest to naprawdę jedyna różnica? Warto w takim razie kupować takie procesory (dla mnie i tak już za późno...), jeżeli nie mam zamiaru w ciągu najbliższych pięciu lat mieć więcej jak 4GB pamięci (tym bardziej, że Linux potrafi więcej obsługiwać nawet przy 32-bitowych maszynach, nie wiem jak reszta)? Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
@fridek: z pamięcią to już wiemy. teraz szukam jakiś innych różnic.
Dobra, udało mi się ten test stworzyć który chciałem. Mógłby to ktoś przetestować u siebie? Porównamy sobie i zobaczymy jak te procki na działania zmiennoprzecinkowe wpływają: Kod #include <stdio.h> Moje wyniki to:#define TEST(NAME, FORMAT, TYPE) \ void NAME(TYPE test, int steps) \ { \ TYPE sum = 0.0; \ int i; \ \ printf("before: " FORMAT "\n", test); \ for(i = 0; i < steps; i++) \ sum += (test / (TYPE) steps); \ printf("after: " FORMAT "\n", sum); \ if(sum == test) \ puts("exact"); \ else \ printf("diff: " FORMAT "\n", test - sum); \ } TEST(long_double2, "%.50LF", long double) TEST(double2, "%.50F", double) TEST(float2, "%.50F", float) int main(void) { int steps = 13; double test = 1.0; puts("long double:"); long_double2((long double)test, steps); puts("double:"); double2((double)test, steps); puts("float:"); float2((float)test, steps); return 0; } Kod adam@localhost ~/devel/c/64bit $ ./precision_test long double:
before: 1.00000000000000000000000000000000000000000000000000 after: 0.99999999999999999989157978275144955659925471991301 diff: 0.00000000000000000010842021724855044340074528008699 double: before: 1.00000000000000000000000000000000000000000000000000 after: 0.99999999999999977795539507496869191527366638183594 diff: 0.00000000000000022204460492503130808472633361816406 float: before: 1.00000000000000000000000000000000000000000000000000 after: 1.00000000000000000000000000000000000000000000000000 exact Ten post edytował Jabol 17.06.2007, 13:03:37 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 02:22 |