Unum (Zahlenformat)
# Unum (Zahlenformat)

Universal numbers, kurz Unum, sind ein Gleitkommazahlen-Format, das von John L. Gustafson, bekannt durch Gustafsons Gesetz, als Alternative zu den vorherrschenden IEEE-754-Gleitkommazahlen entwickelt wurde. Die erste Version von Unums wird retrospektiv als Typ I bezeichnet, als danach Typ II und später Typ III veröffentlicht wurden.

   “Some people are surprised that π can be represented as an exact number, but of course it can, which is one reason for the term ‘universal number.’”
   „Einige überrascht es, dass π exakt dargestellt werden kann, aber natürlich geht das, und es ist einer der Gründe für den Begriff universal number.“

Der wesentlichste interne Unterschied zu IEEE-754-Gleitkommazahlen ist das variable Format. Während durch den IEEE-754-Standard – lediglich abhängig von der Bit-Zahl – eine feste Anzahl von Exponenten- und Mantissen-Bits vorgeschrieben ist, sind diese bei Unums variabel. Allen Unum-Formaten ist gemein, dass arithmetische Über- und Unterläufe nicht zu Unendlichkeiten degenerieren, sondern bei dem betragskleinsten bzw. -größten Intervallen bzw. Zahlen verbleiben. Laut Gustafson ist der numerische Fehler beim Abgleiten von endlichen Ergebnissen ins Unendliche unendlich, wohingegen das Zuweisen eines endlichen Werts möglicherweise ein großer, jedoch endlicher Fehler ist.

## Zahlenmodell

Das mathematische Zahlenmodell hinter Typ-II- und Typ-III-Unums ist die projektive Gerade, also die reellen Zahlen zusammen mit einem unendlich fernen Punkt $\infty$, der durch Zahlen mit großem Betrag erreicht wird, egal ob negativ oder positiv. Wie $0$ ist $\infty$ ohne Vorzeichen und wird von der negativen und der positiven Seite gleichermaßen erreicht. In der Praxis von Gleitkommazahlen sind $0$, unendliche und undefinierte Werte grundsätzlich Spezialfälle; gewisse Metriken, die beispielsweise relative Genauigkeit angeben, sind darauf nicht sinnvoll anwendbar. Bei Unums wird $\infty$ für undefinierte Werte verwendet. Operationen auf endlichen Zahlen, die mathematisch wohldefiniert sind, produzieren nie $\infty$ als Ergebnis. Somit entspricht $\infty$ mehr einem quiet NaN aus IEEE 754 als dessen unendlichen Werten. Wird beispielsweise durch die Addition zweier großer Zahlen der Wertebereich nach oben verlassen, runden IEEE-754-Gleitkommazahlen zu $+\infty$; in Typ-I- und Typ-II-Unums ist das Ergebnis dann ein Objekt, das das offene Intervall zwischen der größten exakt darstellbaren Zahl und $+\infty$ beschreibt. Typ-III-Unums stellen keine Intervalle dar, sie verbleiben dann bei dem größten endlichen Wert.

Das Zahlenmodell hinter Typ-I-Unums und IEEE 754 ist hingegen die abgeschlossene reelle Gerade, also die reellen Zahlen zusammen mit separaten Werten für $-\infty$ und $+\infty$. Dazu gesellen sich außerdem undefinierte Werte, auch NaN für engl. not a number genannt. Ferner unterscheidet IEEE 754 die Zahlen $+0$ und $-0$.

Grundsätzlich gibt es für jedes Unum $x$ ein eindeutiges, genau dargestelltes Negatives $-x$ und bei Typ-II-Unums einen eindeutigen, genau dargestellten Kehrwert $x^{-1}$, wohingegen ein solcher Kehrwert für Typ-III-Unums nur für $0,\infty$ und Zweierpotenzen garantiert ist. In der üblichen Darstellung der projektiven Geraden (s. Bild) entspricht die Negation der Spiegelung an der vertikalen und die Kehrwertbildung an der horizontalen Achse; insbesondere gilt $0^{-1}=\infty$ und $\infty ^{-1}=0$.

## Typ I

Die erste Format von Unums, im Nachhinein Typ I genannt, war als Erweiterung der IEEE-754-Gleitkommazahlen konzipiert. Es verwendet in seiner Darstellung ein ubit (u für engl. unprecise, unpräzise) am Ende, das angibt, ob die Zahl präzise $ubit=0$ oder ein offenes Intervall zwischen nebeneinanderliegenden Gleitkommazahlen ist ($ubit=1$). Das Layout ist dasselbe wie bei IEEE-754-Gleitkommazahlen, jedoch variiert die Anzahl der Exponenten- und Mantissenbits automatisch bzw. sind beide frei wählbar. Typ-I-Unums sind eine einfache Lösung für Intervallarithmetik.

Gustafson entwickelte Typ-II-Unums aus der Erfahrung, dass die IEEE-754-Kompatibilität wenig Nutzen bringt, aber viel Aufwand verursacht, der Teil mit Intervallarithmetik sich hingegen effizient umsetzen ließ.

## Typ II

Die zweite Version von Unums verwirft die Kompatibilität zu IEEE-754-Gleitkommazahlen zugunsten großer Flexibilität. Die Haupterkenntnis war, dass sich vorzeichenbehaftete ganze Zahlen gut auf die projektive Gerade abbilden lassen, wobei der Überlauf bewusst in Kauf genommen wird, dafür die Ordnungsrelation erhalten bleibt. Insbesondere hat bei vorzeichenbehafteten Ganzzahlformaten mit Zweierkomplement-Darstellung von negativen Zahlen die kleinste negative Zahl (die mit maximalem Betrag) die Eigenschaft, ihr eigenes Negatives zu sein. Als Ganzzahl ist dieser Randfall gelegentlich ein Hindernis, für den unendlich fernen Punkt in der projektiven Geraden ist diese Eigenschaft hingegen natürlich und wünschenswert.

Wie Typ-I-Unums interpretieren Typ-II-Unums das letzte Bit in der Darstellung als ubit, das ein offenes Intervall zwischen exakten Zahlen repräsentiert. Diese Intervalle können am Ende der Berechnung kollabiert werden, etwa auf ihren arithmetischen oder geometrischen Mittelpunkt.

Für ein $n$-Bit-Typ-II-Unum-Format werden $2^{n-3}-1$ reelle, nicht notwendigerweise rationale, Zahlen größer als $1$ ausgewählt und im ersten Quadranten auf der projektiven Geraden angesiedelt. Die anderen Quadranten ergeben sich durch Negativen- und Kehrwertbildung. Ein $n$-Bit-Wort hat $2^{n}$ Zustände, davon wird die Hälfte von Intervallen belegt und drei beliebige der vier Quadranten ergeben sich aus dem jeweils vierten. Da $1$ als Wahl fest vergeben wird, gibt es eine Option weniger als $2^{n-3}$.

Ein Beispiel für ein dezimales 8-Bit-Format: Gewünscht wird die exakte Darstellung der $31$ Zahlen $10^{100}$, $10^{50}$, $10^{20}$, $10^{10}$, $10^{6}$, $10^{4}$, $1000$, $500$, $200$, $100$, $80$, $50$, $40$, $25$, $20$, $12{,}5$, $10$, $9$, $8$, $7$, $6$, $5$, $4$, $0{,}3^{-1}$, $3$, $2{,}5$, $2$, $0{,}6^{-1}$, $0{,}7^{-1}$, $1{,}25$, $0{,}9^{-1}$. Die als Inverse angegebenen Zahlen sind Wünsche für den vierten Quadranten, auf eine Weise ausgedrückt, auf die sie ins Schema passen.

Die Operationen für Typ-II-Unums lassen sich im Allgemeinen nur durch eine Wertetabelle implementieren, was sie für Bitzahlen größer als ca. 20 behäbig macht, da Wertetabellen für zweistellige Operationen quadratisch anwachsen.

Gustafson entwickelte Typ-III-Unums, da sich Typ-II-Unums als schwerfällig für verschmolzene (engl. fused) Operationen wie Fused multiply-add herausstellten. Das Ziel von Typ-III-Unums ist also, die Vorteile von Typ-II-Unums software- und hardware-freundlich umzusetzen.

## SoRNs

Da die Formate vom Typ I und II die Zahlenbereiche flexibel und anwendungsspezifisch zulassen, reichen oft geringe Bitlängen aus. Im Fall von 8 Bit kann bereits ein 256-Bit-Wort eine beliebige Vereinigung von Intervallen darstellen (da $2^8$ = 256, siehe Kardinalität der Potenzmenge). In diesem Kontext werden die exakten Zahlen als Einermenge mit ebendieser Zahl und $\infty$ als die Paarmenge $\{-\infty ,+\infty \}$ gesehen, aber der Einfachheit wegen auch als Intervall bezeichnet. Ein so interpretiertes Wort heißt SoRN für engl. Set of Real Numbers, zu deutsch (Teil-)Menge der reellen Zahlen. Dabei gibt das $i$‑te Bit an, ob das Intervall mit der Darstellung $i$ eine Teilmenge der SoRN ist. Als Ergebnis einer Operation bedeutet ein SoRN, dass die mathematisch exakte Lösung darin enthalten ist. Eine korrekte Implementierung vorausgesetzt, ist die Aussage im mathematischen Sinn wahr und keine Approximation mit unbekannten Fehlerschranken.

Die Angabe von SoRNs ist üblicherweise als Intervall oder als Vereinigung von Intervallen, falls Lücken bestehen. Dabei wird hier der Deutlichkeit wegen in der unteren Grenze $-\infty$ und in der oberen Grenze $+\infty$ geschrieben. Insbesondere stellt das Intervall $(-\infty ,+\infty )$ die Menge der reellen Zahlen dar. Als offenes Intervall ist ansonsten $(a,a)$ die leere Menge.

Im Vergleich zu Intervallarithmetik sind SoRNs auch dann gutartig, wenn sonst Stellenauslöschung oder durch unerkannte Abhängigkeiten jeder Iterationsschritt zu einem exponentiellen Genauigkeitsverlust führt. Wenn nicht gerade mit einem einelementigen Intervall begonnen wird, divergiert beispielsweise jede Folge von Intervallen nach traditioneller Intervallarithmetik, die durch wiederholte Anwendung der Operationen $x-x$ oder $x/x$ entsteht (das heißt, die Intervalle werden immer größer und damit als Abschätzung unbrauchbar), wohingegen die von SoRNs beschriebenen Intervalle stetig kleiner werden und das Ergebnis festnageln.

### Arithmetik

Auf SoRNs lässt sich die Arithmetik der Unums fortsetzen: Sind $U$ und $V$ zwei SoRNs, so ist $U+V$ das SoRN, das aus den Unums $u+v$ mit $u$ aus $U$ und $v$ aus $V$ besteht. Analog wird Multiplikation definiert; Subtraktion und Division ergibt sich als $U-V$ gemäß $U+(-V)$ und entsprechend $U/V$ gemäß $U\cdot V^{-1}$. Die einstelligen Operationen $-V$ und $V^{-1}$ werden auf die Einzelelemente angewendet. In mathematischer Notation:

    $U+V=\{\,u+v\,|\,u\in U{\text{ und }}v\in V\,\}$
    $U-V=\{\,u-v\,|\,u\in U{\text{ und }}v\in V\,\}$
    $U\cdot V=\{\,u\cdot v\,|\,u\in U{\text{ und }}v\in V\,\}$
    $U/V=\{\,u/v\,|\,u\in U{\text{ und }}v\in V\,\}$
    $-U=\{\,-u\,|\,u\in U\,\}$
    $U^{-1}=\{\,u^{-1}\,|\,u\in U\,\}$

Mit SoRNs sind auch Operationen möglich, deren Ergebnis auch im mathematischen Sinn nicht immer eine einzelne Zahl ist. Beispielsweise ist die Quadratwurzel-Funktion für negative Eingaben undefiniert. Als Operation auf SoRNs liefert ${\sqrt {-1}}$ entsprechend das leere SoRN. Grundsätzlich ist es zwar möglich, auf jede undefinierte Operation das leere Ergebnis zu liefern, aber in gewisser Hinsicht sind andere Ergebnisse oft besser. Beispielsweise ist $a/b$ die Antwort auf Frage: Welche Zahl $x$ löst die Gleichung $a=b\cdot x$? Für $a=0$ und $b=0$ ist diese Antwort: jede Zahl. Daher ergibt $0/0$ das volle SoRN. Dasselbe gilt für $\infty +\infty$ und $\infty -\infty$ (was dasselbe sein muss, da $+\infty =-\infty$). Ein Beispiel für eine undefinierte Operation, die weder das leere noch das volle SoRN liefert, ist $1^{\infty }$ mit der Lösungsmenge $\lbrack 0,\infty \rbrack$, also einem SoRN, das $\lbrace \pm \infty \rbrace$, $\lbrace 0\rbrace$ und alle positiven Intervalle umfasst.

Beispielsweise gegeben das SoRN $(0,+\infty )$. Der Logarithmus davon (egal zu welcher Basis) ergibt $(-\infty ,+\infty )$. Das Quadrat von diesem Ergebnis ist $\lbrack 0,+\infty )$.

Ein weiteres Beispiel sei die Funktion $f$ mit $f(x)={\tfrac {1}{{\tfrac {1}{x}}+{\tfrac {1}{2}}}}$. Was ist $f(0)$? Eine Rechnung mit Unums ergibt ${\tfrac {1}{{\tfrac {1}{0}}+{\tfrac {1}{2}}}}={\tfrac {1}{\infty +{\tfrac {1}{2}}}}={\tfrac {1}{\infty }}=0$. Nun ist es so, dass auch $f(x)={\tfrac {2x}{2+x}}$ ist, wodurch die Definitionslücke bei 0 verschwindet, und das Ergebnis bestätigt. Doch was, wenn die Eingabe nicht genau bekannt war, sondern als das SoRN $(-1,2\rbrack$ gegeben wird? Wird die erste Darstellung von $f$ verwendet, liefern die Operationen auf 4-Bit-Unums exakte Ergebnisse und das Ergebnis-SoRN repräsentiert die Aussage $-2<f(x)\leq 1$. Für den zweiten Ausdruck mit traditioneller Intervallarithmetik wird zuerst das Eingabeintervall $(-1,2\rbrack$ zu $\lbrack -1,2\rbrack$ abgeschlossen (da traditionelle Intervallarithmetik nur mit abgeschlossenen Intervallen arbeitet). Das Ergebnis ist dann ernüchternd: $\lbrack -2,4\rbrack$. In der zweiten Darstellung kommt $x$ zweimal vor; dass es sich dabei zweimal um derselben Wert (innerhalb der Grenzen) handeln muss und nicht um zwei unabhängige Werte mit denselben Grenzen, wird aber beim mechanischen Auswerten nicht berücksichtigt.

### Lauflängen-Kodierung

Ein SoRN gilt als zusammenhängend, wenn in seiner Darstellung alle Einsen gepackt nebeneinander stehen (schließt das leere SoRN mit ein). Weil $\infty$ an beiden Enden des Zahlenstrahls liegt, aber nur einmal im SoRN kodiert wird, ist das SoRN $[-\infty ,0]\cup [1,+\infty ]$ im mathematischen Sinn zwar nicht zusammenhängend (genauer: im Sinne der projektiven Geraden ist die Menge schon zusammenhängend, aber nicht im Sinne eines Zahlenstrahls mit Endpunkten), wohl aber das SoRN, das es darstellt. Die arithmetischen Grundoperationen und viele andere wie die Wurzel erhalten zusammenhängende SoRNs, das heißt, für zusammenhängende SoRNs als Eingaben liefern sie zusammenhängende SoRNs als Ergebnis. Daher bietet sich eine sogenannte Lauflängen-Kodierung (engl. run-length encoding) an. Statt mit beliebigen SoRNs werden damit nur zusammenhängende dargestellt. Die Lauflängen-Kodierung speichert den Beginn und die Länge der Einser-Kolonne. Für 256 Stellen genügen 8 Bit für je den Beginn und die Länge, somit benötigt die Lauflängen-Kodierung insgesamt 16 Bit. Nur das volle SoRN ist zusammenhängend, kann aber streng genommen nicht so dargestellt werden, da seine Länge (256 Einsen) gerade das Maximum (255) in der Längendarstellung überschreitet. Dem kann abgeholfen werden, da für das leere SoRN formal mehrere Darstellungen existieren, nämlich alle mit Länge 0. Davon wird eine für das volle SoRN umgedeutet.

Insbesondere ist eine Lauflängen-Kodierung für SoRNs effektiver, je höher die Anzahl der Bits ist. Für 16-Bit-Unums wäre ein allgemeines SoRN 65.536 Bit breit, also knapp 8 KiB groß. Die Lauflängen-Kodierung benötigt nur 32 Bit.

### Beispiel

Für das Beispiel wird ein 4-Bit-Typ-II-Unum verwendet, wobei die einzige wählbare Zahl 2 ist. Es gibt die 16 Intervalle $\lbrace \pm \infty \rbrace$, $(-\infty ,-2)$, $\lbrace -2\rbrace$, $(-2,-1)$, $\lbrace -1\rbrace$, $(-1,-{\tfrac {1}{2}})$, $\lbrace -{\tfrac {1}{2}}\rbrace$, $(-{\tfrac {1}{2}},0)$, $\lbrace 0\rbrace$, $(0,+{\tfrac {1}{2}})$, $\lbrace +{\tfrac {1}{2}}\rbrace$, $(+{\tfrac {1}{2}},+1)$, $\lbrace +1\rbrace$, $(+1,+2)$, $\lbrace +2\rbrace$ und $(+2,+\infty )$. Ein Teilmengen-Wort besteht damit aus $2^{4}=16$ Bit.

Allgemein braucht es die Lauflängen-Kodierung von $2^{n}$ Bit genau $2n$ Bits.

## Typ III

Das System der Typ-III-Unums wird auch als Posits and Valids bezeichnet. Das englische Wort posit bedeutet Postulat. Die Posits sind die eigentlichen Zahlen, mit denen gerechnet wird; die Valids definieren Intervalle mit Grenzen von Posits gleichen Formats. Der primäre Zweck von Valids ist Fehlerabschätzung, die sich durch die hohe Fehlertoleranz der Posit-Grenzen oft in brauchbaren Rahmen bewegt. Der große Vorteil von Intervallarithmetik ist (typischerweise), dass das wahre Ergebnis garantiert innerhalb der Intervallgrenzen liegt. Intervallarithmetik läuft daher immer Gefahr, dass die untere und obere Intervallgrenze so weit auseinander liegen, dass die Aussage zwar richtig ist, das Ergebnis aber praktisch keine Aussagekraft mehr besitzt.

IEEE-Gleitkommazahlen erlauben bei der Auswertung der vom Standard vorgeschriebenen transzendenten Funktionen Fehler, die über den Rundungsfehler hinausgehen, hauptsächlich damit die Wertetabellen in der Hardware nicht zu groß werden. Solche Zugeständnisse machen Posits nicht. Im Gegenteil: Implementierungen von Typ-III-Unums müssen eine Skalarprodukt-Operation (auch Fused dot-product genannt) anbieten, deren Ergebnis präzise auf das letzte Bit berechnet wird. Die Operationen Fused multiply-add und Fused sum sind Spezialfälle des Skalarprodukts. (Präzise heißt innerhalb der Rundungsgenauigkeit.) Das Skalarprodukt ist außerdem nicht in der Länge beschränkt; Implementierungen müssen mit jeder Anzahl von Summanden rechnen. Dazu wird ein Puffer verwendet, Quire genannt. Geeignete Quire-Größen sind in einer Tabelle unten aufgelistet.

Die Posits bestehen aus einem Vorzeichen-Bit (engl. sign), einer variablen Anzahl von Regime-Bits, die über grobe Größenordnung entscheiden (und zu denen kein IEEE-754-Äquivalent existiert), Exponenten-Bits und Mantissen-Bits.

Die Anzahl der Regime-, Exponenten- und der Mantissen-Bits variiert. Bestimmungsgrößen eines Unum-Formats sind seine Gesamtbits (in der Praxis meist eine Zweierpotenz) und seine maximalen Exponentenbits $E_{\text{max}}$. Ein $n$‑Bit-Unum erlaubt nach Abzug des Vorzeichenbits für einen konkreten Posit zwischen $2$ und $n-1$ Regime-Bits. Aufgrund der Konstruktion muss die Anzahl der Regime-Bits mindestens $2$ betragen (zur Konstruktion s. unten). Nimmt das Regime mehr Bits ein, als gemäß Gesamtbits minus $E_{\text{max}}$ verbleiben, ist die Anzahl der Exponentenbits nachrangig, entsprechend reduziert und kleiner als $E_{\text{max}}$. Die ggf. übrigen Bits entfallen auf die Mantisse.

In der Anwendung kann der unendlich ferne Punkt $\infty$ durch $\mathrm {NaR}$ ersetzt werden, was für keine reelle Zahl steht (englisch not a real number). Alle Operationen auf $\mathrm {NaR}$ ergeben wieder $\mathrm {NaR}$, insbesondere ist ${\tfrac {1}{\mathrm {NaR} }}=\mathrm {NaR}$, wohingegen ${\tfrac {1}{\infty }}=0$ ist. Als Grund für die Abweichung von keine Zahl (englisch not a number, kurz NaN) nennt Gustafson, dass es sich bei einigen Ergebnissen wie ${\sqrt {-1}}$ um (komplexe) Zahlen handelt.

### Beispielformat

Gegeben das Format mit $16$ Bits und $E_{\text{max}}=2$. Hat ein solches Posit $4$ Regime-Bits, ergibt sich die Verteilung 1 : 4 : 2 : 9 auf Vorzeichen, Regime, Exponent und Mantisse. Hat es 12 Regime-Bits ist die Verteilung 1 : 12 : 2 : 1 und bei 14 Regime-Bits 1 : 14 : 1 : 0.

### Kennzahlen

Aus der Anzahl der Gesamtbits und der maximalen Exponentenbits ergibt sich die Kennzahl des $useed$ (u für Unum und engl. seed für Samen oder Keim) als $useed=2^{E_{\text{max}}}$. Für ein Unum-Format mit bis zu $2$ Exponentenbits beträgt $useed=2^{2^{2}}=2^{4}=16$. Bei bis zu 3 Exponentenbits beträgt das $useed=265$ und bei $4$ schon $useed=65536$.

Im Unterschied zu IEEE 754 haben Unums keinen Exponenten-Bias oder eine vergleichbare Größe.

### Menge der Zahlen

Da die negativen Zahlen und die Bitmuster ihrer Darstellungen aus den positiven hervorgehen, müssen nur letztere beschrieben werden. Die Menge der $n$‑Bit-Unums wird iterativ erzeugt, wobei $n\geq 3$ sein muss. Ausgehend vom einfachsten Format bestehend aus $3$-Bit-Unums, die jeweils nur aus Vorzeichen (1 Bit) und Regime (min. $2$ Bit, s. unten für eine Begründung), wird das Format für $n+1$ Bits durch Anfügen eines Bits an das Format mit $n$ Bits definiert. Mit $max$ wird die größte positive und mit $min$ die kleinste positive Zahl im aktuellen Format bezeichnet. Zwar gilt $min\approx max^{-1}$, die Gleichheit gilt jedoch nur, falls es Zweierpotenzen sind.

Die Menge der $3$-Bit-Unums besteht aus $8$ Elementen: $0$ und $\infty$, $-1$ und $+1$ sind fest vorgegeben; dazu kommt das von der maximalen Anzahl $E_{\text{max}}$ von Exponentenbits abhängige $useed$, zusammen mit $-useed$, $useed^{-1}$ und $-useed^{-1}$. (Dabei ist $E_{\text{max}}\geq 0$ frei wählbar.) Auch wenn keine Darstellung im $3$‑Bit-Format Exponentenbits nutzt, weil die Regime-Bits „immer alles auffressen“, wird $E_{\text{max}}$ festgelegt, da der Wert von $useed$ davon abhängt. Bei der iterativen Darstellung der Zahlenmenge bleibt $E_{\text{max}}$ gleich, nur die Bitanzahl wird erhöht. Das $3$‑Bit-Unum ist lediglich der Startpunkt der Konstruktion. Im $3$‑Bit-Format ist $max=useed$.

Für den Schritt vom $n$‑Bit-Unum zum $(n+1)$‑Bit-Unum wird an jede Darstellung ein Bit angefügt. Ist dieses Bit 0, bleibt der repräsentierte Wert derselbe, unabhängig ob das Bit dem Regime, dem Exponenten oder der Mantisse zufällt. Ist das Bit 1, so stellt das Bitmuster eine neue Zahl dar, die zwischen den beiden Zahlen liegt, deren Darstellungen, interpretiert als ganze Zahl, je um $1$ größer und kleiner sind:

* Zwischen $max$ und $\infty$ wird $max\cdot useed$ eingefügt und entsprechend $max/useed$ zwischen $min$ und $0$. Das hinzugefügte Bit wird Teil des Regimes.
* Zwischen $2^{m}$ und $2^{n}$, wobei $m$ und $n$ mehr als $1$ auseinanderliegen, wird das geometrische Mittel von $2^{m}$ und $2^{n}$ eingefügt: $2^{(m+n)/2}$. Das hinzugefügte Bit wird Teil des Exponenten.
* Andernfalls wird zwischen $x$ und $y$ ihr arithmetisches Mittel ${\tfrac {x+y}{2}}$ hinzugefügt. Das hinzugefügte Bit wird Teil der Mantisse.

Der erste Punkt fügt viele exponentiell auseinanderliegende Zahlen an den extremen Rändern hinzu. In einem gewissen Sinne approximieren sie $0$ und $\infty$ damit gut. Der letzte Punkt fügt viele linear auseinanderliegende Zahlen um $1$ ein. Exponentiell bzw. linear auseinanderliegend bedeutet: Sind $x<y<z$ aufeinanderfolgend, so ist im ersten Fall $z=y\cdot {\tfrac {y}{x}}$ und im zweiten Fall $z=y+(y-x)$. Konstruktionsbedingt ist die Summe $m+n$ im zweiten Punkt eine gerade ganze Zahl, deren Hälfte somit eine ganze Zahl ist.

Die ersten Konstruktionsschritte für die positiven Posits mit $E_{\text{max}}=1$, das heißt mit $useed=2^{4}$, sind:

* Ausgangsformat mit $3$ Bits

    $\lbrace 0,1/useed,1,useed,\infty \rbrace$
    $=\lbrace 0,2^{-4},2^{0},2^{4},\infty \rbrace$; $min=2^{-4}$ und $max=2^{4}$.
* Format mit $4$ Bits:

    $\lbrace 0,min/useed,2^{-4},2^{(-4+0)/2},2^{0},2^{(0+4)/2},2^{4},max\cdot useed,\infty \rbrace$
    $=\lbrace 0,2^{-8},2^{-4},2^{-2},2^{0},2^{2},2^{4},2^{8},\infty \rbrace$; $min=2^{-8}$ und $max=2^{8}$.
* Format mit $5$ Bits:

    $\lbrace 0,min/useed,2^{-8},2^{(-8-4)/2},2^{-4},2^{(-4-2)/2},2^{-2},2^{(-2+0)/2},2^{0},2^{(0+2)/2},2^{2},2^{(2+4)/2},2^{4},2^{(4+8)/2},2^{8},max\cdot useed,\infty \rbrace$
    $=\lbrace 0,2^{-12},2^{-8},2^{-6},2^{-4},2^{-3},2^{-2},2^{-1},2^{0},2^{1},2^{2},2^{3},2^{4},2^{6},2^{8},2^{12},\infty \rbrace$; $min=2^{-12}$ und $max=2^{12}$.
* Format mit $6$ Bits:

    $\lbrace 0,min/useed$, $2^{-12}$, $2^{(-12-8)/2}$, $2^{-8}$, $2^{(-8-6)/2}$, $2^{-6}$, $2^{(-6-4)/2}$, $2^{-4}$, ${\tfrac {2^{-4}+2^{-3}}{2}}$, $2^{-3}$, ${\tfrac {2^{-3}+2^{-2}}{2}}$, $2^{-2}$, ${\tfrac {2^{-2}+2^{-1}}{2}}$, $2^{-1}$, ${\tfrac {2^{-1}+2^{0}}{2}}$, $2^{0}$, ${\tfrac {2^{0}+2^{1}}{2}}$, $2^{1}$, ${\tfrac {2^{1}+2^{2}}{2}}$, $2^{2}$, ${\tfrac {2^{2}+2^{3}}{2}},$ $2^{3}$, ${\tfrac {2^{3}+2^{4}}{2}}$, $2^{4}$, $2^{(4+6)/2}$, $2^{6}$, $2^{(6+8)/2}$, $2^{8}$, $2^{(8+12)/2}$, $2^{12}$, $max\cdot useed$, $\infty \rbrace$
    $=\lbrace 0$, $2^{-16}$, $2^{-12}$, $2^{-10}$, $2^{-8}$, $2^{-7}$, $2^{-6}$, $2^{-5}$, $2^{-4}$, $1{\tfrac {1}{2}}\cdot 2^{-4}$, $2^{-3}$, $1{\tfrac {1}{2}}\cdot 2^{-3}$, $2^{-2}$, $1{\tfrac {1}{2}}\cdot 2^{-2}$, $2^{-1}$, $1{\tfrac {1}{2}}\cdot 2^{-1}$, $2^{0}$, $1{\tfrac {1}{2}}$, $2^{1}$, $1{\tfrac {1}{2}}\cdot 2^{1}$, $2^{2}$, $1{\tfrac {1}{2}}\cdot 2^{2}$, $2^{3}$, $1{\tfrac {1}{2}}\cdot 2^{3}$, $2^{4}$, $2^{5}$, $2^{6}$, $2^{7}$, $2^{8}$, $2^{10}$, $2^{12}$, $2^{16}$, $\infty \rbrace$; $min=2^{-16}$ und $max=2^{16}$.

Ist $U_{n}^{E_{\text{max}}}$ die Menge der $n$‑Bit-Unum mit höchstens $E_{\text{max}}$ Exponentenbits, so gilt

    $\left|U_{n}^{E_{\text{max}}}\right|=2^{n}$,

das heißt, es werden keine Bitmuster verschwendet. Außerdem ist durch die Beziehung

    $U_{n}^{E_{\text{max}}}\subsetneq U_{n+1}^{E_{\text{max}}}$

gesichert, dass eine Erhöhung der Bitanzahl nur mehr Zahlen dargestellt werden können, aber keine verschwinden.

Die Menge

    $U_{\infty }^{E_{\text{max}}}=\bigcup _{n\geq 3}U_{n}^{E_{\text{max}}}$

der durch Unums darstellbaren projektiven reellen Zahlen liegt dicht in $\mathbb {R} \cup \{\infty \}$, was bedeutet, dass sich jede reelle Zahl beliebig genau durch ein Unum approximieren lässt.

### Interpretation eines Bitmusters

Ausgenommen $\infty$ soll die Ordnung auf Postits mit der Ordnung auf ihren Darstellungen übereinstimmen, wobei die Darstellungen als vorzeichenbehaftete ganze Zahlen in Zweierkomplement-Darstellung interpretiert werden. Aus der Menge der Zahlen und dieser Voraussetzung ergibt sich bereits eindeutig, welche Zahl von einer beliebigen Postits-Darstellung beschrieben wird. Hier folgt ein anschauliches, effektives Verfahren.

Besteht das Bitmuster aus 00…0, so repräsentiert es $0$; besteht es aus 10…0, so repräsentiert es $\infty$. Nachfolgend werden diese beiden Fälle ausgeschlossen.

Das Vorzeichen ist das erste (= höchstwertige) Bit $s$. Wie bei IEEE 754 ist die Interpretation, dass für $s=0$ die Zahl positiv und für $s=1$ negativ ist. Davon ausgenommen sind die Werte $0$ und $\infty$; tatsächlich hat $0$ technisch gesehen das Vorzeichenbit 0 und $\infty$ das Vorzeichenbit 1, dennoch werden beide als weder positiv noch negativ bezeichnet. Im Unterschied zu IEEE-Gleitkommazahlen speichern Posits nicht ein Vorzeichen und einen Betrag.

Die folgenden Betrachtungen werden für $s=0$ angegeben. Ist $s=1$, so wird die Zahl vor dem Bestimmen der Kennzahlen per Zweierkomplement nicht-negativ gemacht.

Die Lauflänge $k$ (engl. run-length) einer konkreten Zahl ergibt sich aus den Regime-Bits. Das Regime folgt auf das Vorzeichen und besteht aus einer Folge gleicher Binärziffern, die durch die jeweils andere Binärziffer beendet wird oder bis zum Ende läuft. Das Regime hat also immer die Form 0…01 oder 1…10 oder, falls das Regime den kompletten Rest der Zahl einnimmt, 1…11 und die kürzestmögliche Formen sind 01, 10 und 11. Für Gesamtlänge 5 sind die möglichen Regimes zwischen 2 und 4 Bits lang, konkret 0001, 001, 01, 10, 110, 1110 und 1111. Führen Nullen das Regime an, so ist $-k$ die Anzahl dieser Nullen, also ist $k$ negativ. Für 0001 ist $k=-3$ usw. bis 01 für $k=-1$. Führen hingegen Einsen das Regime an, so ist $k+1$ die Anzahl dieser Einsen, also ist $k$ positiv oder null. Für 10 ist $k=0,$ für 110 ist $k=1$ usw. bis 1111 für $k=3$. Das Regime kann nicht aus nur Nullen bestehen, denn dann wäre das Bitmuster (je nach Vorzeichenbit) das für $0$ oder $\infty$ (s. oben).

Es bezeichnet $e$ den numerischen Wert der Exponentenbits, ggf. ergänzt um Nullen, interpretiert als vorzeichenlose binäre Zahl. Ist nämlich die Anzahl der Exponentenbits kleiner als $E_{\text{max}}$, werden für die Bestimmung von $e$ fiktive Nullen an das Bitmuster angefügt, sodass die vorzeichenlose Zahl aus genau $E_{\text{max}}$ binären Ziffern besteht.

Sind in der Darstellung am Ende noch Bits übrig, die nicht vergeben wurden, so entfallen sie auf die Mantisse. Gibt es $F$ Mantissenbits und ist $F>0$, so sei $f$ der numerische Wert der Mantissenbits, interpretiert als vorzeichenlose binäre Zahl; andernfalls setze $f=0$.

Für die Bestimmung des numerischen Werts eines Unums aus seinem Bitmuster ist

    $(-1)^{s}\cdot useed^{k}\cdot 2^{e}\cdot (1+f/2^{F})$.

Anschaulich trägt die Mantisse den Faktor $1,f_{1}\ldots f_{F}$ (in Binärdarstellung) bei, wobei $f_{i}$ die binären Ziffern in der Mantisse bezeichnen. In den Begriffen von IEEE 754 ist das Hidden Bit immer 1 und Unums haben generell auch keine subnormalen Zahlen. Der Wert von $useed$ ist so gewählt, dass $2^{|e|}<useed$ gilt. Dadurch ist die Darstellung auch eindeutig.

Die Lauflänge erzeugt sehr schnell sehr große oder kleine Beträge auf Kosten der Genauigkeit in der Mantisse, jedoch lassen kurze Regimes, also Lauflängen nahe $0$ und somit Zahlen nahe $1$, viel Platz für Mantissenbits. Dadurch lassen sich im Vergleich zu IEEE-754-Gleitkommazahlen bei derselben Gesamtbitzahl sowohl betragsmäßig größere Zahlen darstellen als auch Zahlen um $1$ genauer auflösen.

### Konsequenzen der Darstellung

Ein Posit wird negiert, indem seine Darstellung als Ganzzahl gemäß Zweierkomplement negiert wird. Da die Zweierkomplement-Operation sowohl die Darstellung der $0$ als auch die Darstellung von $\infty$ gleich lässt, wird für deren Negation keine Sonderfallbehandlung gebraucht.

Durch die Zweierkomplement-Darstellung ist der Größer-/Kleiner-Vergleich ohne Bestimmung der Kennzahlen möglich (sofern das Format, also Gesamtbreite und $E_{\text{max}}$, gleich ist). Mit Ausnahme von $\infty$ ist ein Posit kleiner bzw. größer als ein anderes, falls ihre Darstellungen interpretiert als vorzeichenbehaftete Ganzzahlen dieselbe Relation haben. Die Zahlen müssen nicht aufwendig decodiert werden.

### Beispielbitmuster

Als Typ setze ein 16-Bit-Unum mit Exponentenlänge $E_{\text{max}}=3$ ein. Die Zahl hat das Bitmuster 0:0001:101:11011101, dabei trennt der Doppelpunkt Vorzeichen-, Regime-, Exponenten- und Mantissenbits.

* Sonderfälle 0 und $\infty$: Liegen nicht vor.
* Bestimme $useed=2^{2^{3}}=256$.
* Vorzeichen 0: $s=0$.
* Laufweite 0001: $k$: Es führen 3 Nullen, somit $-k=3$, d. h, $k=-3$.
* Exponent 101: $e=101_{2}=5_{10}$.
* Mantisse 11011101: $f=11011101_{2}=221_{10}$ mit $F=8$.

Daraus ergibt sich

    $(-1)^{s}\cdot useed^{k}\cdot 2^{e}\cdot (1+f/2^{F})=$
    $(-1)^{0}\cdot 256^{-3}\cdot 2^{5}\cdot (1+221/2^{8})=$
    $1\cdot 2^{-24}\cdot 2^{5}\cdot (1+221/2^{8})$

Der letzte Ausdruck ergibt $3{,}553926944732666015625\cdot 10^{-6}$.

### Tabelle mit Beispielwerten

Für ein weiteres Beispiel betrachten wir das Format mit 8 Bits und $E_{\text{max}}=3$ sowie $E_{\text{max}}=1$. Dann ist $useed=256$ bzw. $E_{\text{max}}=4$. Einige Zahlen und ihre Werte sind in der Tabelle unten eingetragen.

Falls die Anzahl der Exponentenbits kleiner als $E_{\text{max}}$ ist, werden die impliziten Exponentenbits unterstrichen.

| Werte von $s$, $k$, $e$, $F$ und $f$ für $E_{\text{max}}=3$ | Interpretation für $E_{\text{max}}=3$ | Bitmuster | Bitmuster | Werte von $s$, $k$, $e$, $F$ und $f$ für $E_{\text{max}}=1$ | Interpretation für $E_{\text{max}}=1$ |
| - | - | - | - | - | - |
| nicht definiert | $\infty$ | 10000000 | 10000000 | nicht definiert | $\infty$ |
| $k=6$ | $useed^{6}=2^{48}\approx 2{,}81\cdot 10^{14}$ | 01111111 | 01111111 | $k=6,\,e={\underline {0}}_{2}=0$ | $useed^{6}=2^{12}=4096$ |
| $k=5$ | $useed^{5}=2^{40}\approx 1{,}10\cdot 10^{12}$ | 01111110 | 01111110 | $k=5,\,e={\underline {0}}_{2}=0$ | $useed^{5}=2^{10}=1024$ |
| $k=4,\,e=1{\underline {00}}_{2}=4$ | $useed^{4}\cdot 2^{4}=2^{8\cdot 4+4}=2^{36}\approx 6{,}87\cdot 10^{10}$ | 01111101 | 01111101 | $k=4,\,e=1$ | $useed^{4}\cdot 2^{1}=2^{2\cdot 4+1}=512$ |
| $k=3,\,e=01{\underline {0}}_{2}=2$ | $useed^{3}\cdot 2^{2}=2^{8\cdot 3+2}=2^{26}\approx 6{,}71\cdot 10^{7}$ | 01111001 | 01111001 | $k=3,\,e=0,\,F=1,\,f=1$ | $useed^{3}\cdot 2^{0}\cdot (1+1/2^{1})=96$ |
| $k=2,\,e=101_{2}=5$ | $useed^{2}\cdot 2^{5}=2^{8\cdot 2+5}=2^{21}=2\,097\,152$ | 01110101 | 01110101 | $k=2,\,e=1,\,F=2,\,f=1$ | $useed^{2}\cdot 2^{1}\cdot (1+1/2^{2})=40$ |
| $k=1,\,e=6,\,F=1,\,f=1$ | $useed^{1}\cdot 2^{6}\cdot 1{\tfrac {1}{2}}=2^{8\cdot 1+6}\cdot 1{\tfrac {1}{2}}=2^{14}\cdot 1{\tfrac {1}{2}}=2^{14}\cdot 2^{13}=24\,576$ | 01101101 | 01101101 | $k=1,\,e=1,\,F=3,\,f=101_{2}=5$ | $useed^{1}\cdot 2^{1}\cdot (1+5/2^{3})=8\cdot 1{\tfrac {5}{8}}=13$ |
| $k=1,\,e=5,\,F=1,\,f=0$ | $useed^{1}\cdot 2^{5}=2^{8\cdot 1+5}=8192$ | 01101010 | 01101010 | $k=1,\,e=1,\,F=3,\,f=010_{2}=2$ | $useed^{1}\cdot 2^{1}\cdot (1+2/2^{3})=8\cdot 1{\tfrac {1}{4}}=10$ |
| $k=0,\,e=3,\,F=2,\,f=2$ | $useed^{0}\cdot 2^{3}\cdot 1{\tfrac {1}{2}}=12$ | 01001110 | 01001110 | $k=0,\,e=0,\,F=4,\,f=14$ | $1+14/2^{4}=1{,}875$ |
| $k=0,\,e=3,\,F=2,\,f=1$ | $8\cdot 1{\tfrac {1}{4}}=10$ | 01001101 | 01001101 | $k=0,\,e=0,\,F=4,\,f=13$ | $1+13/2^{4}=1{,}8125$ |
| $k=0,\,e=0,\,F=2,\,f=3$ | $2^{0}\cdot 1{\tfrac {3}{4}}=1{\tfrac {3}{4}}=1{,}75$ | 01000011 | 01000011 | $k=0,\,e=0,\,F=4,\,f=3$ | $1+3/16=1{,}1875$ |
| $k=0,\,e=0,\,F=2,\,f=2$ | $1{\tfrac {1}{2}}=1{,}5$ | 01000010 | 01000010 | $k=0,\,e=0,\,F=4,\,f=2$ | $1+2/16=1{,}125$ |
| $k=0,\,e=0,\,F=2,\,f=1$ | $1{\tfrac {1}{4}}=1{,}25$ | 01000001 | 01000001 | $k=0,\,e=0,\,F=4,\,f=1$ | $1+1/16=1{,}0625$ |
| $k=0,\,e=0,\,F=2,\,f=0$ | $1$ | 01000000 | 01000000 | $k=0,\,e=0,\,F=4,\,f=0$ | $1$ |
| $k=-1,\,e=7,\,F=2,\,f=3$ | $useed^{-1}\cdot 2^{7}\cdot 1{\tfrac {3}{4}}=2^{8-7}\cdot 1{\tfrac {3}{4}}=(1{\tfrac {3}{4}})/2=0{,}875$ | 00111111 | 00111111 | $k=-1,\,e=1,\,F=4,\,f=15$ | $useed^{-1}\cdot 2^{1}\cdot (1+15/16)=(1+15/16)/2=0{,}96875$ |
| $k=-1,\,e=7,\,F=2,\,f=2$ | $useed^{-1}\cdot 2^{7}\cdot 1{\tfrac {1}{2}}=2^{8-7}\cdot 1{\tfrac {1}{2}}=(1{\tfrac {1}{2}})/2=0{,}75$ | 00111110 | 00111110 | $k=-1,\,e=1,\,F=4,\,f=14$ | $useed^{-1}\cdot 2^{1}\cdot (1+14/16)=(1+14/16)/2=0{,}9375$ |
| $k=-1,\,e=7,\,F=2,\,f=2$ | $useed^{-1}\cdot 2^{7}\cdot 1{\tfrac {1}{4}}=2^{8-7}\cdot 1{\tfrac {1}{4}}=(1{\tfrac {1}{4}})/2=0{,}625$ | 00111101 | 00111101 | $k=-1,\,e=1,\,F=4,\,f=13$ | $useed^{-1}\cdot 2^{1}\cdot (1+13/16)=(1+13/16)/2=0{,}90625$ |
| $k=-1,\,e=4,\,F=2,\,f=2$ | $useed^{-1}\cdot 2^{4}\cdot 1{\tfrac {1}{2}}=1{\tfrac {1}{2}}/16=0{,}09375$ | 00110010 | 00110010 | $k=-1,\,e=1,\,F=4,\,f=2$ | $useed^{-1}\cdot 2\cdot 1{\tfrac {1}{8}}=1{\tfrac {1}{8}}/2=0{,}564$ |
| $k=-1,\,e=1,\,F=2,\,f=1$ | $useed^{-1}\cdot 2^{1}\cdot 1{\tfrac {1}{4}}=2^{-7}\cdot 1{\tfrac {1}{4}}=0{,}009765625$ | 00100101 | 00100101 | $k=-1,\,e=0,\,F=4,\,f=5$ | $useed^{-1}\cdot (1+5/16)=(1+5/16)/4=0{,}328125$ |
| $k=-2,\,e=7,\,F=1,\,f=1$ | $useed^{-2}\cdot 2^{7}\cdot 1{\tfrac {1}{2}}=2^{-9}\cdot 1{\tfrac {1}{2}}\approx 0{,}0029297$ | 00011111 | 00011111 | $k=-2,\,e=1,\,F=3,\,f=7$ | $useed^{-2}\cdot 2\cdot 1{\tfrac {7}{8}}=2^{-3}\cdot 1{\tfrac {7}{8}}=0{,}234375$ |
| $k=-2,\,e=2,\,F=1,\,f=1$ | $useed^{-2}\cdot 2^{5}\cdot 1{\tfrac {1}{2}}=0{,}000732421875$ | 00010101 | 00010101 | $k=-2,\,e=0,\,F=3,\,f=5$ | $useed^{-2}\cdot 1{\tfrac {5}{8}}=1{\tfrac {5}{8}}/16=0{,}1015625$ |
| $k=-3,\,e=6$ | $useed^{-3}\cdot 2^{6}=2^{-8\cdot 3+6}=2^{-18}\approx 3{,}8147\cdot 10^{-6}$ | 00001110 | 00001110 | $k=-3,\,e=1,\,F=2,\,f=2$ | $useed^{-3}\cdot 2\cdot 1{\tfrac {1}{2}}=2^{-5}\cdot 1{\tfrac {1}{2}}=0{,}046875$ |
| $k=-4,\,e=01{\underline {0}}_{2}=4$ | $useed^{-4}\cdot 2^{4}=2^{-8\cdot 4+4}=2^{-28}\approx 3{,}73\cdot 10^{-9}$ | 00000101 | 00000101 | $k=-4,\,e=0,\,F=1,\,f=1$ | $useed^{-4}\cdot 1{\tfrac {1}{2}}=1{\tfrac {1}{2}}/2^{-8}=0{,}005859375$ |
| $k=-5,\,e=1{\underline {00}}_{2}=4$ | $useed^{-5}\cdot 2^{4}=2^{-36}\approx 1{,}46\cdot 10^{-11}$ | 00000011 | 00000011 | $k=-5,\,e=1$ | $useed^{-5}\cdot 2^{1}=2^{-11}\approx 4{,}88\cdot 10^{-4}$ |
| $k=-5,\,e=000_{2}=0$ | $useed^{-5}=2^{-40}\approx 9{,}09\cdot 10^{-13}$ | 00000010 | 00000010 | $k=-5,\,e=0$ | $useed^{-5}=2^{-10}\approx 9{,}77\cdot 10^{-4}$ |
| $k=-6$ | $useed^{-6}=2^{-48}\approx 3{,}55\cdot 10^{-15}$ | 00000001 | 00000001 | $k=-6$ | $useed^{-6}=2^{-12}\approx 2{,}44\cdot 10^{-4}$ |
| nicht definiert | 0 | 00000000 | 00000000 | nicht definiert | 0 |

In den fünf Zeilen um die Eins ist deutlich, dass die Kehrwerte nicht eindeutig darstellbar sind, aber auf die korrespondierenden Werte abgebildet werden. Exakte Kehrwerte existieren genau für die Zahlen mit $f=0$, also Zweierpotenzen. Weil das Regime für Zahlen mit sehr großem oder sehr kleinem Betrag viele Bits einnimmt und so zunehmend wenige für die Mantisse übrig lässt, sind an den Rändern besonders viele Zweierpotenzen. Durch großes $E_{\text{max}}$ lässt sich dieser Effekt verstärken, jedoch auf Kosten von Zahlen in der Nähe von $1$ (und entsprechend $-1$). In der Praxis ist $E_{\text{max}}$ eher klein, so ist $E_{\text{max}}=1$ für 8-Bit-Unums eine typische Wahl.

### Darstellen einer Zahl als Posit

Für $x=0$ und $x=\infty$ ist die Darstellung klar. Für $x<0$ bestimmt man das Bitmuster von $|x|$ und wendet darauf das Zweierkomplement an.

Sei also $x>0$ darzustellen. Zuerst bestimme die Lauflänge $k\leq \log _{useed}(x)$ maximal oder (mit anderen Worten) bestimmt $k=\lfloor \log _{useed}(x)\rfloor$ (wobei $\lfloor \;\rfloor$ das Runden zur nächsten ganzen Zahl in Richtung $-\infty$ bedeutet). Dadurch sind die Regime-Bits eindeutig festgelegt. Falls noch Bits für den Exponenten übrig sind, bestimme $e\leq \log _{2}(x/useed^{k})$ maximal, d. h. $e=\lfloor \log _{2}(x/useed^{k})\rfloor$. Falls noch $F$ Bits für die Mantisse übrig sind, bestimme

    $f_{\text{opt}}=(x\cdot useed^{-k}\cdot 2^{-e}-1)\cdot 2^{F}$.

Dann gilt

    $x=useed^{k}\cdot 2^{e}\cdot (1+f_{\text{opt}}/2^{F})$,

jedoch ist $f_{\text{opt}}$ nicht notwendig ganzzahlig. Daher wird $f$ als der gerundete Wert von $f_{\text{opt}}$ bestimmt (mit der üblichen Rundung zur nächstgelegenen ganzen Zahl), wobei zur nächsten geraden Zahl gerundet wird, wenn $f_{\text{opt}}$ genau zwischen zwei ganzen Zahlen liegt. Zuletzt stellt man $e$ und $f$ binär dar, wobei $f$ im Allgemeinen nicht eingesetzt wird, sondern einaddiert. Beim Runden von $f_{\text{opt}}$ kann ein Überlauf auftreten, denn sind $F$ Mantissenbits vorgesehen, kann es vorkommen, dass der Wert von $f$ genau $(F+1)$ Bits zur Darstellung braucht. Möglichst einfach formuliert wird die Darstellung für das Posit mit fiktivem $f=0$ mit der Darstellung von $f$ addiert (die Darstellungen interpretiert als Ganzzahl). Passt $f$ in $F$ Bits, ist das dasselbe als würden die letzten Bits einfach gesetzt. Im Ausnahmefall führt dies zur korrekten Anpassung des Exponenten und ggf. Regimes. Eine Ausnahmebehandlung, um nicht einen endlichen Wert auf $\infty$ zu runden, ist nicht notwendig, da am oberen Rand des Zahlenbereichs die Regime-Bits die komplette Darstellung einnehmen und weder $e$ noch $f$ berechnet werden.

Beispiel $x=0{,}1$ für das 8-Bit-Format mit $E_{\text{max}}=1$. Dann ist $useed=4$ und $\log _{4}(0{,}1)\approx -1{,}166$, also ist die Lauflänge $k=-2$; die Regime-Bits sind somit 001. Es bleiben nach Abzug des Vorzeichenbits noch ein Exponenten-Bit und drei Mantissen-Bits. Für den Exponenten ergibt sich $e\leq \log _{2}(1{,}16)\approx 0{,}168$, also abgerundet, $e=0$. Für die Mantisse ergibt sich

    $f_{\text{opt}}=(1{,}16-1)\cdot 2^{3}=0{,}16\cdot 8=4{,}18$

und so ergibt sich nach Rundung $f=5$. Für die Darstellung bestimmt man $e=0=0_{2}$ und $f=5=101_{2}$ und es ergibt sich 0:001:0:101. Gegenrechnen ergibt

    $useed^{k}\cdot 2^{e}\cdot (1+f/2^{F})=4^{-2}\cdot 2^{0}\cdot (1+5/8)=1{\tfrac {5}{8}}/16=0{,}1015625.$

Der Wert findet sich auch in der Tabelle oben.

Beispiel $x=0{,}9999$ für das 8-Bit-Format mit $E_{\text{max}}=1$. Dann sind $k=-1$ und $e=1$. Es ergibt sich insbesondere

    $f_{\text{opt}}=(0{,}9999\cdot 4^{-(-1)}\cdot 2^{-1}-1)\cdot 2^{4}=15{,}99968\approx 16$.

Nun passt $16=10000_{2}$ nicht in $F=4$ Bits. Die Darstellung ohne $f$ wäre 0:01:1:0000 was mit $10000_{2}$ addiert wird. Das ergibt 0:10:0:0000, was die Zahl $1$ darstellt. Die größte Zahl kleiner als $1$ wird von 0:01:1:1111 dargestellt und ist $0{,}96875.$

Die Werte finden sich in der Tabelle oben.

Beispiel $x=0{,}1$ für das 8-Bit-Format mit $E_{\text{max}}=3$. Dann ist $useed=256$ und $\log _{256}(0{,}1)\approx -0{,}415$, also ist die Lauflänge $k=-1$; die Regime-Bits sind somit 01. Es bleiben noch 3 Exponenten- und 2 Mantissen-Bits. Für den Exponenten ergibt sich $e\leq \log _{2}(x\cdot 256)=\log _{2}(25{,}6)\approx 4{,}678$, also $e=4=100_{2}$. Für die Mantisse ergibt sich

    $f_{\text{opt}}=(0{,}1\cdot 256^{1}\cdot 2^{-4}-1)\cdot 2^{2}=(1{,}6-1)\cdot 2^{2}=2{,}4$.

Daraus ergibt sich $f=2=10_{2}$. Die Darstellung ist also 0:01:100:10. Gegenrechnen ergibt

    $useed^{k}\cdot 2^{e}\cdot (1+f/2^{F})=256^{-1}\cdot 2^{4}\cdot (1+2/4)={\tfrac {1{\tfrac {1}{2}}}{16}}=0{,}09375$.

Auch dieser Wert findet sich auch in der Tabelle oben.

Der relative Fehler beträgt beim ersten Beispiel $0{,}1015625/0{,}1-1=1{,}5625\%$ und beim letzten $0{,}1/0{,}09375-1=6{\tfrac {2}{3}}\%$. Die Beispiele zeigen, dass der größere Wertebereich mit einem Genauigkeitsverlust erkauft wird.

### Ausnutzen der Posit-Darstellung

In einem 8-Bit-Unum mit $E_{\text{max}}=0$ kann die Sigmoidfunktion $\textstyle x\mapsto {\tfrac {1}{1+\mathrm {e} ^{-x}}}$ näherungsweise sehr schnell berechnet werden, indem die Darstellung der Unums ausgenutzt wird. Statt aufwendig die Exponentialfunktion auszuwerten, wird das Vorzeichenbit invertiert und die Darstellung logisch um 2 Stellen nach rechts verschoben. In C entspricht das dem Ausdruck (x ^ 0x80) >> 2. Von der Idee her ist der Ansatz ähnlich wie der zur Berechnung des Kehrwerts der Quadratwurzel.

### Standard-Posits

Für die Bitzahlen 16, 32, 64, 128 und 256 existieren IEEE-754-Formate. Geeignete Wahlen von $E_{\text{max}}$ nähern deren Wertebereiche an.

| Bits | Exp. (IEEE) | Wertebereich (IEEE) | $E_{\text{max}}$ (Posit) | Wertebereich (Posit) | Quire-Bits (Posit) |
| - | - | - | - | - | - |
| $8$ | ― | ― | $0$ | $2\cdot 10^{-4}$ bis $4\cdot 10^{4}$0 | n. a. |
| $16$ | $5$ | $6\cdot 10^{-8}$ bis $7\cdot 10^{+4}$ | $1$ | $4\cdot 10^{-9}$ bis $3\cdot 10^{+8}$ | $128=2^{7}$0 |
| $32$ | $8$ | $1\cdot 10^{-45}$ bis $3\cdot 10^{+38}$ | $3$ | $6\cdot 10^{-73}$ bis $2\cdot 10^{+72}$ | $1024=2^{10}$ |
| $64$ | $11$ | $5\cdot 10^{-324}$ bis $2\cdot 10^{+308}$ | $4$ | $2\cdot 10^{-299}$ bis $4\cdot 10^{+298}$ | $4096=2^{12}$ |
| $128$ | $15$ | $6\cdot 10^{-4966}$ bis $1\cdot 10^{+4932}$ | $7$ | $1\cdot 10^{-4855}$ bis $1\cdot 10^{+4855}$ | $65\,536=2^{16}$ |
| $256$ | $19$ | $2\cdot 10^{-78.984}$ bis $2\cdot 10^{+78\,913}$ | $10$ | $2\cdot 10^{-78\,297}$ bis $5\cdot 10^{+78\,296}$ | $1\,048\,576=2^{20}$ |
