Warning: fopen(dane.txt) [function.fopen]: failed to open stream: Permission denied in /home/fazafm/public_html/adwiki/strona.php(147) : eval()'d code on line 225

Warning: flock(): supplied argument is not a valid stream resource in /home/fazafm/public_html/adwiki/strona.php(147) : eval()'d code on line 230

Warning: fclose(): supplied argument is not a valid stream resource in /home/fazafm/public_html/adwiki/strona.php(147) : eval()'d code on line 231
Kod stałopozycyjny - AdWiki.INFO - Wikipedia , wolna encyklopedia


Szukaj:






Ostatnio oglądane:
  • 306 [fr]
  • 埼玉銀行 [ja]
  • Hz [zh]
  • 767 [fr]
  • 薬品 [ja]
  • .bw [en]
  • Július 10 [hu]
  • 386 [hu]
  • 1986 [pl]
  • 环县 [zh]
  • -45 [fr]
  • Main Page [hu]
  • 584 [id]
  • 中國歷代王朝君主世系表 [zh]
  • 790 [ar]
  • 三山区 [zh]
  • Category:北京公园 [zh]
  • 542 [he]
  • Category:水果 [zh]
  • 1985 [pl]
  • 轮回 [zh]
  • 台灣師範大學 [zh]
  • Portal:世界遺産 [ja]
  • 艋舺龍山寺 [zh]
  • 1984 [pl]
  • Strona Głśwna [pl]
  • 歐洲歷史 [zh]
  • Web [es]
  • 吐谷浑 [zh]
  • Wybierz język: ar | id | bg | ca | ceb | cs | da | de | et | en / / | | es | eo | fr | gr | he | hr | it | ko | lt | hu | nl | ja | no | pl | pt | ru | ro | sk | sl | sr | fi | sv | te | tr | uk | zh

    Kod stałopozycyjny



    Zapis stałoprzecinkowy albo stałopozycyjny (ang. fixedpoint) – jeden ze sposobów zapisu liczb ułamkowych stosowanych w informatyce. Do zapisu liczby stałoprzecinkowej przeznaczona jest z góry określona ilość cyfr dwójkowych (bitów), a pozycję przecinka ustala się arbitralnie, w zależności od wymaganej dokładności.

    Na przykład: mając do dyspozycji słowo 32-bitowe, można wydzielić 24 bity na część całkowitą, 8 bitów na część ułamkową, albo po 16 bitów na część całkowitą i ułamkową, albo 30 bitów na część całkowitą i zostawić tylko 2 bity do zapisu części ułamkowej.

    Podziału na część całkowitą i ułamkową dokonuje arbitralnie projektant systemu lub programista, który przewiduje z jak dużymi liczbami całkowitymi lub z jak dużą dokładnością obliczenia będą wykonywane. Zwiększanie precyzji liczby to zmniejszanie zakresu, gdyż bity które mają reprezentować część ułamkową (stać za przecinkiem) nie mogą już reprezentować wartości całkowitych. Stwierdzenie odwrotne również jest prawdziwe: zwiększanie zakresu (całkowitoliczbowego) to zmniejszanie precyzji (mniej bitów do dyspozycji na opisanie części ułamkowej).

    [edytuj] Zakresy liczb

    Wartość liczby stałoprzecinkowej jest określana tak jak w pozycyjnym systemie liczbowym. Wagi bitów części całkowitej mają wartości (kolejno, od najbardziej znaczącego bitu): 2^{k-1}\ldots 2^0, natomiast wagi bitów części ułamkowej mają wartości: 2^{-1}\ldots 2^{-n}. Dokładność reprezentacji wynosi 2 n, czyli jest równa wadze najmniej znaczącego bitu części ułamkowej.

    Na przykład jeśli na część całkowitą zostaną przeznaczone 4 bity (k = 4), natomiast na część ułamkową 2 bity (n = 2), wówczas:

    • wartość maksymalna:
    1111,112 = 23 + 22 + 21 + 20 + 2-1 + 2-2 = 15,7510
    • wartość minimalna:
    0000,012 = 2-2 = 0,2510
    • przykładowa liczba:
    1011,102 = 23 + 21 + 20 + 2-1 = 11,510

    [edytuj] Praktyczna realizacja arytmetyki stałoprzecinkowej

    Zapis stałoprzecinkowy ma tę zaletę, że arytmetyka stałoprzecinkowa może zostać zrealizowana za pomocą działań całkowitoliczbowych. Dzięki temu działania na ułamkach są do realizowania tam, gdzie nie ma możliwości użycia liczb zmiennoprzecinkowych: na procesorach bez jednostki zmienoprzecinkowej, na prostych mikrokomputerach lub w programach używających rozkazów MMX. Zapis stałoprzecinkowy był także powszechnie stosowany gdy jednostka zmiennoprzecinkowa procesora była nie dość wydajna, a jednocześnie nie była potrzebna wysoka dokładność obliczeń, np. w szybkich procedurach graficznych.

    Jeśli obliczyć wartość liczby stałoprzecinkowej x w naturalnym kodzie dwójkowym, wartość ta wyniesie x2n. Wówczas działania całkowitoliczbowe mają postać:

    • Dodawanie/odejmowanie: a 2^{n} \pm b 2^{n} = (a \pm b) 2^{n} - wynik nie wymaga korekty, jest to zapis stałoprzecinkowy z założoną dokładnością.
    • Mnożenie: a2nb2n = ab22n - wynik wymaga korekty, należy podzielić go przez 2n, aby uzyskać postać x2n.
    • Dzielenie całkowitoliczbowe. W tym przypadku dzielną a należy przemnożyć przez czynnik 2n przed wykonaniem dzielenia i wówczas: a22n / b2n = (a / b)2n.

    Mnożenie i dzielenie przez potęgę dwójki, w tym przypadku 2n, jest równoważne przesunięciu bitowemu (odpowiednio) w lewo bądź prawo o n bitów; jest to operacja bardzo szybka.

    [edytuj] Zobacz też

    Change language: All | الرربية | Bahasa Indonesia | Български | Català | Cebuano | Ħesky | Dansk | Deutsch | Eesti | English | Español | Esperanto | Français | עברית | Hrvatski | Italiano | 핶국어 | Lietuvių | Magyar | Nederlands | 旡涬語 | Norsk (bokmál) | Polski | Português | Русскиб | Română | Slovenčina | Slovenščina | Српски / Srpski | Suomi | Svenska | తెలుగు | Türkçe | УкраїнсѦка | 中文



    Autorem skryptu AdWiki v0.72 (2007) jest husky83
    Wikipedia jest zarejestrowanym znakiem towarowym Wikimedia Foundation

    Wszystkie materiały pochodzą z Wikipedii, obięte są licencją GNU Free Documentation License




    WIKIPEDIA NA ADWIKI.INFO


    | Radio Puzzle | Hrubieszow | Smieszne Filmiki | jPortal | Gimnazjum | Omega Forum | Codzienne doniesienia | Kamaz moBlog | Adwiki |

    AdWiki Wikipedia Wolna Encyklopedia