Száma fixpontos

A számos fix pont (angol fixpontos számmá.) - méret a valós szám a számítógép memóriájában, mint egy egész szám. A száma X saját maga és a integer képviselete x „kapcsolódnak a következő képlettel







ahol z - Ár (tömeg) LSB.

A legegyszerűbb példa a fixpontos aritmetikai - fordítás rubel egy fillért sem. Ebben az esetben, hogy emlékezzen az összeg a 12 rubelt 34 kopecks, írunk egy memóriahely száma 1234.

Ha z <1 . для удобства расчётов делают, чтобы целые числа кодировались без погрешности. Другими словами, выбирают целое число u (машинную единицу ) и принимают z = 1 u>>. Ha z> 1. ez történt az egész.

Ha ez nem szükséges, hogy bármilyen konkrét számok szerepelnek a töredék bit rács, programozók általában úgy választjuk 2 z = - f> - ez lehetővé teszi a használatát szorzási és osztási műveletekhez, biteltolások. Az ilyen számtani mondják: «F bitek a törtrész, i = n-f -, hogy egy egész” és nevezzük el «i, f», «i .F» vagy «Qi.f». Például: számtani 8,24 kijelölünk egész részét 8 bit és 24 - frakcionált. Ennek megfelelően, hogy képes tárolni számokat -128 128-z, hogy az ár (tömeg) LSB z = 2-24 = 5 ⋅ 96 10-8 = 596 \ cdot 10>.

A szögletes értékek gyakran Z = 2 π ⋅ 2 - f> (különösen, ha a trigonometrikus függvény számítottuk a táblázatban).

A név „fix-pont” (vagy „fix pont”; a továbbiakban: - FL) volt köszönhető, hogy egy egyszerű metafora két előre meghatározott bit vessző átalakítására frakcionális egész szám. Például, egy egész szám 1234, miután a beszúrási pontot egy frakcionális fordul 12,34.

Az Egyesült Királyságban, az Egyesült Államokban és más országokban helyett vesszőt egész részét a tizedes pontot használnak, így a „fix pont” és a „fix pont” egyenértékű.







A hátránya fixpontos - egy nagyon szűk tartományban a számok, a fenyegető túlfolyó egyik végén a tartomány és a veszteség pontosabb számításokat a másikon. Ez a probléma vezetett a találmány szerinti és a lebegőpontos. Például: ha azt akarjuk, pontosság 3 értékű számokkal 4 byte-os fix pont ad egy sor 6 nagyságrenddel (azaz, a különbség mintegy 10 6 között a legnagyobb és a legkisebb számú), 4 byte száma egyszeres pontosságú - 70 nagyságrenddel.

Kevés programozási nyelvekben beépített támogatása fix pont szám, mivel a legtöbb használó bináris vagy decimális lebegőpontos számok könnyebben és pontosabban. Lebegőpontos számok könnyebb köszönhetően nagy dinamikatartomány, nem kell előre beállítani a tizedes helyek számát a számukra. Ha szükségünk fixpontos aritmetikai, akkor végre kell hajtani a programozó nem is olyan nyelveken, mint a C és C ++, amelyek jellemzően ilyen számtani.

ISO / IEC TR 18037 szabvány támogatást nyújt fixpontos számok nyelvén C. GCC fejlesztők már végrehajtott [2], hogy a támogatást.

Szinte az összes adatbázisok és az SQL nyelv támogatja a fixpontos aritmetikai és tárolása során az adatokat. Például PostgreSQL egy speciális numerikus típusú pontosan számok tárolása akár 1000 számjegy.

OpenGL ES 1.x szabvány támogatja a fixpontos szám, mivel célja a beágyazott rendszerek. akik gyakran nem rendelkeznek FPU.

  • Összeadása és kivonása fixpontos szám - egy szokásos összeadás és kivonás: (x ± y) „= x” ± y”.
  • Hasonlóképpen, a szorzás és osztás egy egész konstans: (c x) '= c ⋅ x'.
  • Szorzás és osztás eltér egész szám egy konstans. (X ⋅ y) '= [x' ⋅ y '⋅ z] = [x' ⋅ y 'u]> \ right]> (xy)' = [x 'Z ⋅ y'] = [x '⋅ uy' ]> \ right) „= \ left [> \ right] = \ left [> \ right]>. ahol [] - működésének kerekítést egész szám. Különösen, ha egy kicsit a törtszám F: (x ⋅ y) '= (x' ⋅ y „) SHR f. (X y) '= x' shl f y '\, f, \, \, \, \, \ left (> \ right)' = \, f >>>.
  • Az egyéb műveletek, továbbá a hagyományos Taylor-sor, és iteratív technikákat kiszámításához az asztal széles körben használják.

Ha az operandusok és az eredmény eltérő ára (súly) LSB, a képlet bonyolultabb - de néha van köze, mert nagy különbség nagyságrendileg.

Lefordítani számokat a fixpontos formátum chelovekochitaemy formátumban, és fordítva, a rendes átigazolási szabályok tört számok a pozicionális számrendszer a másikba.




Kapcsolódó cikkek