eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika[OT] sukces tylko w zjednoczeniu europy › Re: [OT] sukces tylko w zjednoczeniu europy
  • Data: 2016-12-03 19:26:45
    Temat: Re: [OT] sukces tylko w zjednoczeniu europy
    Od: "HF5BS" <h...@...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]


    Użytkownik "J.F." <j...@p...onet.pl> napisał w wiadomości
    news:phapwfedlpal$.b77f1vi5x2g5.dlg@40tude.net...
    > Dnia Sat, 3 Dec 2016 01:22:11 +0100, HF5BS napisał(a):
    >> Co do matematyki - w C64 odejmij 5.2-5... Wynik <>0.2... (kiedyś mi przez
    >> ten błąd jeden program liczący odległości pokazywał kompletne bzdury).
    >> Radzę
    >> sobie wtedy, mnożąc elemeny działania przez 10 i o tyleż dzieląc wynik,
    >> wyjdzie OK.
    >
    > Hm, jesli w C64 nie spieprzyli czegos mocno, to wynik nie powinien
    > bardzo odbiegac od 0.2. Co jak co, ale odleglosci powinny sie liczyc

    No, tak bardzo nie odbiegał. Ale czegoż wymagać od liczby zaledwie
    5-bajtowej? Problem był głównie w tym, że właśnie granica 0.2 była podziałem
    między obszarami. Wynik poniżej 0.2 zaliczał obiekt do położonego w
    sąsiednim obszarze. Najlepsze, że spowodowało to w końcu zaliczenie
    położenia, do obszaru, który nie istnieje. Mimo, że wyliczona odległość nie
    była specjalnie różniąca się od właściwej. Musiałem zastosować wybieg, gdzie
    cząstki odejmowania pomnożyłem najpierw przez 10, wykonałem odejmowanie i
    wtedy wynik podzieliłem przez 2, co już dało oczekiwane 0.2.

    > dosc dobrze.
    >
    > Nawiasiem mowiac - wspolczesne procesory, zgodne z IEEEcostam, czyli
    > 8087, to liczb dziesietnych tez nie przechowuja dokladnie.
    > Dokladnie do jest 0.5, 0.25, 0.125 itd, a takie 0.2 ma nieskonczone
    > rozwiniecie binarne.

    I chyba o to rozwinięcie można się potłuc... Czy to nie z tego powodu
    pierwsze Pentiumy robiły błąd, chyba w jakiejś liczbie zmiennoprzecinkowej?
    Coś mi po głowie chodzi, że w NT4 komenda pentnt.exe badała właśnie tę
    sprawę, czy procek ma błąd w strukturze, czy nie. Nie pamiętam, w jaki
    sposób ten błąd obchodzono, zdaje mi się, że wyłączano/odłączano jednostkę
    ALU, bądź jej część odpowiedzialną za błąd i obliczenia robiono programowo,
    już poprawną procedurą. Albo wymieniano procek... no, nie pamiętam.
    W każdym razie, wykonanie tej komendy u mnie daje rezultat taki:
    <ctrl-c>
    Microsoft Windows XP [Wersja 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.

    C:\>pentnt
    The floating point hardware in this system does not
    exhibit the Pentium floating point division error.

    C:\>exit
    <ctrl-v>

    --
    ...Ja biorę na siebie schody, znajdę je skubane i skopię im poręcz
    tak, że nie będą wiedziały, którędy na górę. (C) Osioł ze Shreka.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: