![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 5 Dołączył: 8.11.2004 Skąd: trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 219 Pomógł: 5 Dołączył: 18.07.2006 Skąd: Piekary Śląskie Ostrzeżenie: (0%) ![]() ![]() |
Pewnie kluczem do rozwiązania zagadki jest to, że liczba 0.1 jest liczbą niewymierną w systemie dwójkowym, a 0.14 = 0.1 + 0.04.
Procesory stosują różne triki, żeby tę cechę wyeliminować ale jak widać nie zawsze działa. Aczkolwiek kiedyś miałem taki problem, że pisałem program do obliczania jakimi monetami wydać resztę w sklepie (na jakiś konkurs to było). Chodziło to aby badać reszty z dzielenia. No i generalnie na Intelach wyniki dzielenia (albo zaokrąglania - to dawno było) były inne od tych uzyskanych na AMD - tym samym kodem źródłowym!!! To mnie wtedy dość mocno zaskoczyło bo procesory przechodzą bardzo ostre testy na poprawność działania jednostki arytmetycznej, zwłaszcza tej zmiennoprzecinkowej. Historia o tym jak kiedyś wybuchła jakaś rakieta kosmiczna bo któryś Pentium źle liczył jest dość znana. Ten post edytował cicik 8.08.2007, 09:17:08 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 07:41 |