Dualsystem

Aus Kryptowiki - Die freie Enzyklopädie der Kryptowährungen
Version vom 17. November 2017, 21:42 Uhr von C1ph4 (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{Weiterleitungshinweis|Binärzahl|Zu ''binären Zahlen'' als Erweiterung der reellen Zahlen siehe Anormal-komplexe Zahl.}} <div style="float:right"> {|cla…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Vorlage:Weiterleitungshinweis

Dezimalzahlen
0 bis 15
im Dualsystem
Wertigkeit:
8 4 2 1
Null:
0 0 0 0
Eins:
0 0 0 1
Zwei:
0 0 1 0
Drei:
0 0 1 1
Vier:
0 1 0 0
Fünf:
0 1 0 1
Sechs:
0 1 1 0
Sieben:
0 1 1 1
Acht:
1 0 0 0
Neun:
1 0 0 1
Zehn:
1 0 1 0
Elf:
1 0 1 1
Zwölf:
1 1 0 0
Dreizehn:
1 1 0 1
Vierzehn:
1 1 1 0
Fünfzehn:
1 1 1 1

Das Dualsystem (lat. dualis „zwei enthaltend“), auch Zweiersystem oder Binärsystem genannt, ist ein Zahlensystem, das zur Darstellung von Zahlen nur zwei verschiedene Ziffern benutzt.[1]

Im üblichen Dezimalsystem werden die Ziffern 0 bis 9 verwendet. Im Dualsystem hingegen werden Zahlen nur mit den Ziffern des Wertes null und eins dargestellt. Oft werden für diese Ziffern die Symbole 0 und 1 verwendet. Die Zahlen null bis fünfzehn sind in der rechts stehenden Liste aufgeführt.

Das Dualsystem ist das Stellenwertsystem mit der Basis 2, liefert also die dyadische (2-adische) Darstellung von Zahlen (Dyadik) (gr. δύο = zwei).

Aufgrund seiner Bedeutung in der Digitaltechnik ist es neben dem Dezimalsystem das wichtigste Zahlensystem.

Die Zahldarstellungen im Dualsystem werden auch Dualzahlen oder Binärzahlen genannt. Letztere ist die allgemeinere Bezeichnung, da diese auch einfach für binärcodierte Zahlen stehen kann. Der Begriff Binärzahl spezifiziert die Darstellungsweise einer Zahl also nicht näher, er sagt nur aus, dass zwei verschiedene Ziffern verwendet werden.

Definition und Darstellung

Bei der Zahldarstellung im Dualsystem werden die Ziffern <math>z_i</math> wie im gewöhnlich verwendeten Dezimalsystem ohne Trennzeichen hintereinander geschrieben, ihr Stellenwert entspricht allerdings der zur Stelle passenden Zweierpotenz und nicht der Zehnerpotenz.

Die höchstwertige Stelle mit dem Wert <math>z_m</math> wird also ganz links und die niederwertigeren Stellen mit den Werten <math>z_{m-1}</math> bis <math>z_0</math> in absteigender Reihenfolge rechts davon aufgeschrieben. Zur Darstellung von rationalen oder reellen Zahlen folgen dann nach einem trennenden Komma die Stellen <math>z_{-1}</math> bis <math>z_{-n}</math>, die den gebrochenen Anteil der Zahl darstellen. Wenn diese Darstellung abbricht, dann sieht das so aus:

<math>z_m z_{m-1} \ldots z_0\operatorname{,}z_{-1} z_{-2} \ldots z_{-n}

\qquad \left(m,n\in\mathbb{N} \quad z_i\in\{0,1\}\right) </math>

Der Wert <math>Z</math> der Dualzahl ergibt sich durch Addition dieser Ziffern, welche vorher jeweils mit ihrem Stellenwert <math>2^i</math> multipliziert werden:

<math>Z = \sum_{i=-n}^m z_i \cdot 2^i</math>.

Gewöhnlich werden analog zu anderen Zahlensystemen die Symbole 0 und 1 zur Darstellung der beiden Ziffern verwendet.

In älterer Literatur mit Bezug zur elektronischen Datenverarbeitung werden manchmal die Symbole Low (L) und High (H) anstelle von 0 und 1 verwendet. Low steht dann meist für den Wert null und High für den Wert eins. Diese Zuordnung nennt sich positive Logik, bei negativer Logik werden die Werte andersherum zugeordnet. In der Informatik werden für binär kodierte Werte auch die „Ziffern“ wahr (w) und falsch (f) bzw. die englischen Übersetzungen true (t) und false (f) verwendet, wobei falsch=0 und wahr=1 gesetzt wird.

Auch die Symbole L für den Wert eins und 0 für den Wert null finden (selten) Verwendung.

Negative Zahlen werden im Dualsystem wie im Dezimalsystem mit einem vorangestellten Minus (−) geschrieben.

Beispiele

Die Ziffernfolge 1101 zum Beispiel stellt nicht (wie im Dezimalsystem) die Tausendeinhunderteins dar, sondern die Dreizehn, denn im Dualsystem berechnet sich der Wert durch

<math>

[1101]_2 = 1 \cdot 2^3 + 1 \cdot 2^2 + 0 \cdot 2^1 + 1 \cdot 2^0 = [13]_{10} </math>

und nicht wie im Dezimalsystem durch

<math>

1 \cdot 10^3 + 1 \cdot 10^2 + 0 \cdot 10^1 + 1 \cdot 10^0 = [1101]_{10} </math>.

Für weitere Techniken und Beispiele zum Umrechnen von Dualzahlen in Dezimalzahlen und umgekehrt: siehe Abschnitt Umrechnen von Dualzahlen in andere Stellenwertsysteme.

Die Klammerung der Resultate mit der tiefgestellten 2 beziehungsweise der 10 gibt die Basis des verwendeten Stellenwertsystems an. So kann leicht erkannt werden, ob die Zahl im Dual- oder im Dezimalsystem dargestellt ist. In der Literatur werden die eckigen Klammern oft weggelassen und die tiefergestellte Zahl dann manchmal in runde Klammern gesetzt. Ebenfalls möglich ist die Kennzeichnung durch den nachgestellten Großbuchstaben B (für binary, engl. für binär).

Verschiedene Schreibweisen der Zahl dreiundzwanzig im Dualsystem:

  • [10111]2
  • 101112
  • 10111(2)
  • 10111b (sog. Intel-Konvention)
  • 10111B
  • 0b10111
  •  %10111 (sog. Motorola-Konvention, aber z. B. auch bei DR-DOS DEBUG)
  • HLHHH
  • L0LLL

Geschichte

Entwicklung des Dualsystems

Der alt-indische Mathematiker Pingala stellte die erste bekannte Beschreibung eines Zahlensystems bestehend aus zwei Zeichen im 3. Jahrhundert v. Chr. vor. Dieses Zahlensystem kannte allerdings keine Null.

Eine Serie von acht Trigrammen und 64 Hexagrammen sind aus dem alt-chinesischen und daoistischen Text I Ching bekannt. Der chinesische Gelehrte und Philosoph Shao Yong entwickelte im 11. Jahrhundert daraus eine systematische Anordnung von Hexagrammen, die die Folge von 1 bis 64 darstellt, und eine Methode, um dieselbe zu erzeugen. Es gibt jedoch keine Hinweise, dass Shao es verstand, Berechnungen im Dualsystem vorzunehmen oder das Konzept des Stellenwertes erkannt hatte.

Joachim Bouvet übermittelte die vierundsechzig Hexagramme aus China an Leibniz, 1701

Schon Jahrhunderte bevor das Dualsystem in Europa entwickelt wurde, haben Polynesier das System zur Vereinfachung von Rechnungen benutzt [2].

Leibniz empfand schon Ende des 17. Jahrhunderts die Dyadik (dyo, griech. = Zwei), also die Darstellung von Zahlen im Dualsystem, die er entwickelte, als sehr wichtig. Er sah darin ein so überzeugendes Sinnbild des christlichen Glaubens, dass er damit den chinesischen Kaiser Kangxi überzeugen wollte. Dazu schrieb er an den französischen Jesuitenpater Joachim Bouvet (1656–1730):

„Zu Beginn des ersten Tages war die 1, das heißt Gott. Zu Beginn des zweiten Tages die 2, denn Himmel und Erde wurden während des ersten geschaffen. Schließlich zu Beginn des siebenten Tages war schon alles da; deshalb ist der letzte Tag der vollkommenste und der Sabbat, denn an ihm ist alles geschaffen und erfüllt, und deshalb schreibt sich die 7 111, also ohne Null. Und nur wenn man die Zahlen bloß mit 0 und 1 schreibt, erkennt man die Vollkommenheit des siebenten Tages, der als heilig gilt, und von dem noch bemerkenswert ist, dass seine Charaktere einen Bezug zur Dreifaltigkeit haben.“
Das binäre Zahlensystem in einem ersten Entwurf von Gottfried Wilhelm Leibniz, 1697

Etwas weltlicher fiel hingegen seine Beschreibung in einem Brief an den Herzog Rudolf von Braunschweig-Wolfenbüttel vom 2. Januar 1697 aus:

„… Denn einer der Hauptpunkte des christlichen Glaubens … ist die Erschaffung aller Dinge aus dem Nichts durch die Allmacht Gottes. Nun kann man wohl sagen, daß nichts in der Welt dies besser vorstelle, ja, gleichsam demonstriere, als der Ursprung der Zahlen, wie er allhier vorgestellt ist, durch deren Ausdrückung nur und allein mit Eins und Null (oder Nichts) alle Zahlen entstehen. Es wird wohl schwerlich in der Natur und Philosophie ein besseres Vorbild dieses Geheimnisses zu finden sein… Das kommt hier um so mehr zupasse, weil die leere Tiefe und wüste Finsternis zu Null und Nichts, aber der Geist Gottes mit seinem Lichte zur allmächtigen Eins gehört. Wegen der Worte des Sinnbilds habe ich mich eine Zeiteilang bedacht und endlich für gut befunden diesen Vers zu setzen: Alles aus dem Nichts zu entwickeln genügt Eins (Omnibus ex nihilo ducendis sufficit unum).“[3]

Wohl weil die feinmechanischen Fertigkeiten der damaligen Zeit nicht ausreichten, griff Leibniz beim Bau seiner Rechenmaschinen auf das Dezimalsystem zurück.

Seite aus „Explication de l’Arithmétique Binaire“, 1703

Das Dualsystem wurde von Leibniz am Anfang des 18. Jahrhunderts in seinem Artikel Explication de l’Arithmétique Binaire (Histoire de l’Academie Royale des Sciences 1703, veröffentlicht in Paris 1705,[4]) vollständig dokumentiert. Leibniz bestätigt darin außerdem die Ansicht Joachim Bouvets, eines Missionars am chinesischen Kaiserhof, der die Tri- und Hexagramme des Fu Hsi (siehe Abbildung: „Zeichen des Fu Hsi“) bei bestimmter Leserichtung als Zahlzeichen interpretiert hat. Er sah darin ein archaisches Binärsystem, das in Vergessenheit geraten ist. Diese Deutung gilt inzwischen als sehr unwahrscheinlich.

Leibniz hatte aber auch in Europa Vorgänger.[5] Eine frühere Behandlung des Dualsystems und anderer Stellensysteme von Thomas Harriot wurde von diesem nicht veröffentlicht, sondern fand sich erst im Nachlass.[6] Die erste Veröffentlichung des Dualsystems in Europa ist wahrscheinlich in Mathesis Biceps vetus et nova 1670 vom späteren spanischen Bischof Juan Caramuel y Lobkowitz (1606–1682), der auch Zahlen zu anderen Basen behandelt. Auch Blaise Pascal merkte schon in De numeris multiplicibus (1654, 1665) an, dass die Basis 10 keine Notwendigkeit ist.

1854 veröffentlichte der britische Mathematiker George Boole eine richtungsweisende Arbeit, die detailliert ein logisches System beschreibt, das als Boolesche Algebra bekannt wurde. Sein logisches System bereitete der Realisierung von elektronischen Schaltkreisen den Weg, welche die Arithmetik im Dualsystem implementieren.

Die ersten Realisierungen in der Technik

Anwendung

Bei der Entwicklung von elektronischen Rechenmaschinen erlangte das Dualsystem große Bedeutung, denn in der Digitaltechnik werden Zahlen durch elektrische Zustände dargestellt. Bevorzugt werden zwei komplementäre Zustände wie Strom an / Strom aus oder Spannung / Masse verwendet, da auf diese Weise sehr fehlerresistente und einfache Schaltungen zu realisieren sind (siehe Binärcode). Diese zwei Zustände lassen sich dann als Ziffern benutzen. Das Dualsystem ist die einfachste Methode, um mit Zahlen zu rechnen, die durch diese zwei Ziffern dargestellt werden.

Dualzahlen finden in der elektronischen Datenverarbeitung bei der Darstellung von Festkommazahlen oder ganzen Zahlen Verwendung. Negative Zahlen werden vor allem als Zweierkomplement dargestellt, welches nur im positiven Bereich der Dualzahlendarstellung entspricht. Seltener wird dazu das Einerkomplement verwendet, welches der invertierten Darstellung von Dualzahlen mit vorangestellter Eins entspricht. Die Darstellung von negativen Zahlen im Einerkomplement hat den Nachteil, dass zwei Darstellungen für die Null existieren, einmal im Positiven und einmal im Negativen. Eine weitere Alternative bietet der auf einer Wertebereichsverschiebung basierende Exzesscode.

Um rationale oder gar reelle Zahlen mit nicht abbrechender Dualzahl-Darstellung näherungsweise in der elektronischen Datenverarbeitung darzustellen, werden vorzugsweise Gleitkommadarstellungen verwendet, bei der die Zahl normalisiert und in Mantisse und Exponent aufgeteilt wird. Diese beiden Werte werden dann in Form von Dualzahlen gespeichert.

Berechnung benötigter Stellen

Eine Dualzahl mit <math>n</math> Stellen kann maximal den Wert <math>2^n - 1</math> annehmen. Eine vierstellige Dualzahl kann also höchstens den Wert <math>2^4 - 1</math>, also   16 − 1 = 15   haben.

Konsequenterweise kann man im Dualsystem mit seinen 10 Fingern bis <math>2^{10} - 1</math>, also bis 1023 zählen.

In der Digitaltechnik gilt es zu beachten, dass häufig beim Speichern einer Dualzahl auch deren Vorzeichen gespeichert werden muss. Dazu wird meistens das eigentlich höchstwertige Bit in dem für die Zahl reservierten Speicherbereich verwendet. Ist dieser Speicherbereich <math>n</math> Bit groß, so beträgt (bei der Darstellung der negativen Zahlen im Zweierkomplement) der maximale Wert der positiven Zahlen <math>2^{(n-1)}-1</math> und der minimale Wert der negativen Zahlen <math>-(2^{(n-1)})</math>. Dabei zählt die <math>0</math> zu den positiven Zahlen und die <math>-1</math> ist die „erste negative Zahl“. Insgesamt bleibt damit die Anzahl der darstellbaren Zahlen gleich <math>2^n</math>.

Die Anzahl benötigter Stellen im Dualsystem für eine gegebene Zahl <math>n</math> im Dezimalsystem ist

<math>\lfloor \operatorname{lb} n\rfloor + 1</math>.

Dabei bezeichnet <math>\lfloor \cdot \rfloor</math> die Abrundungsfunktion und <math>\operatorname{lb} n</math> den Logarithmus zur Basis 2 der Zahl <math>n</math>. Alternativ kann die Anzahl der Dezimalstellen mit 3,322 multipliziert werden (+Aufrunden), was eine Obergrenze ergibt, denn lb(10) ≈ 3,322 (eine Dezimalstelle, eigentlich also lb(<math>\textstyle 9{,}\bar{9}</math>) wird maximal zu ≈3,322 Dualstellen).

Grundrechenarten im Dualsystem

Analog zu den Zahlen im Dezimalsystem lassen sich mit Dualzahlen die gängigen arithmetischen Grundoperationen Addition, Subtraktion, Multiplikation und Division durchführen. Tatsächlich werden die benötigten Algorithmen sogar einfacher und lassen sich effizient mit logischen Schaltungen elektronisch realisieren. Die Einführung von Dualzahlen in der Rechentechnik brachte daher viele Vorteile.

Addition Beispiel

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10

<math>

{\begin{matrix}

                  &1011_2\\

\operatorname{+}&\ \ \ 11_2\\ \end{matrix} \over \begin{matrix}

               &\ \ 1110_2\\

\end{matrix}} </math>

Subtraktion Beispiel

0 − 0 = 0
0 − 1 = −1
1 − 0 = 1
1 − 1 = 0

<math>

\begin{matrix} &1011_2\\ {-\ }&\ \ 111_2\\ \end{matrix} \over \begin{matrix} &\ \ \ \ \ 100_2 \end{matrix} </math>

Multiplikation Beispiel

0 <math>\cdot</math> 0 = 0
0 <math>\cdot</math> 1 = 0
1 <math>\cdot</math> 0 = 0
1 <math>\cdot</math> 1 = 1

<math>1010_2{\cdot}11_2=11110_2</math>
Division Beispiel

0 / 0 = n.def.
0 / 1 = 0
1 / 0 = n.def.
1 / 1 = 1

<math>1010_2{/}10_2=101_2</math>

Schriftliche Addition

A B M1 M2 E
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

Die binäre Addition ist eine grundlegende Basisoperation in der Computerwelt. Will man zwei nicht negative Binärzahlen <math>A</math> und <math>B</math> addieren, kann man das wie im Dezimalsystem tun. Nur muss man beachten, dass beim Ergebnis an der jeweiligen Stelle keine „Zwei“ notiert wird, sondern eine Null und an die nächste Stelle ein Übertrag. Das geschieht analog zur Dezimaladdition, wenn sich bei der Addition einer Stelle eine Zehn ergibt:

Die Zahlen werden übereinander aufgeschrieben. Nun arbeitet man von rechts nach links alle Binärziffern (=Bits) von <math>A</math> und <math>B</math> simultan ab und erzeugt in jedem Zwischenschritt ein Ergebnisbit sowie ein Merkerbit (auch Übertrag genannt). Dabei werden die Bits entsprechend der Tabelle rechts zusammengezählt. In den Spalten A und B sind die Bits der zu addierenden Zahlen zu finden. In der Spalte <math>M_1</math> steht das Merkerbit des vorherigen Zwischenschrittes. Daraus ergeben sich (entsprechend dieser Tabelle, welche einem Volladdierer entspricht) ein Ergebnisbit (E) und ein neues Merkerbit (<math>M_2</math>). Alle Ergebnisbits, von rechts nach links aneinandergereiht, stellen das Resultat dar. Entsteht beim letzten Zwischenschritt ein Merkerbit, so bekommt das Resultat links eine zusätzliche 1.

Am besten sieht man das anhand eines Beispiels. Hier werden die Zahlen A und B zusammengezählt. In jedem Schritt wird ein anfallendes Merkerbit bei der nächsten Ziffer notiert.

       A = 10011010 (154)
       B = 00110110 (54)
  Merker = 01111100
           ————————
Ergebnis = 11010000 (208)
           ‗‗‗‗‗‗‗‗

Schriftliche Subtraktion

Die Subtraktion verhält sich analog zur Addition.

0 − 0 = 0
0 − 1 = −1
1 − 0 = 1
1 − 1 = 0

Zwei Zahlen im Dualsystem können voneinander wie im folgenden Beispiel dargestellt subtrahiert werden:

<math> \begin{matrix} & 1 & 1 & 0 & 1 & 1 & 1 & 0\\

             -& &   & 1 & 0  & 1  & 1  & 1\\
              & & {}_1 &  & {}_1 & {}_1 & {}_1 &

\end{matrix} \over \begin{matrix} =& 1 & 0 & 1 & 0 & 1 & 1 & 1 \end{matrix} </math>

Hier wird die Subtraktion   110−23 = 87   durchgeführt. Die kleinen Einsen in der dritten Reihe zeigen den Übertrag. Das Verfahren ist das Gleiche, wie es in der Schule für das Dezimalsystem unterrichtet wird. Etwas ungewohnt sieht der Fall 0−1 aus. Zur Verdeutlichung das Beispiel 2−9 im Dezimalsystem: Man denkt sich eine Zehnerstelle vor die Zwei, wodurch sich die Subtraktion 12−9 ergibt. Die gedachte Zehnerstelle wird dann als Übertrag an die nächste Stelle weitergereicht. Im Dualsystem geschieht das Gleiche: Aus 0−1 wird 10−1. Als Ergebnis kann also eine 1 hingeschrieben werden; die vor die 0 gedachte Eins muss dann als Übertrag an die nächste Stelle geschrieben und von dieser zusätzlich abgezogen werden.

Das Verfahren funktioniert (wie auch im Dezimalsystem) nicht, wenn der Minuend (1. Zahl) kleiner ist als der Subtrahend (2. Zahl). Sollte das der Fall sein, erfolgt die Subtraktion einer Zahl durch die Addition des Zweierkomplementes dieser Zahl. Die Subtraktion einer positiven Zahl ergibt nämlich das gleiche Ergebnis wie die Addition der entsprechenden negativen Zahl mit dem gleichen Betrag:

<math> \begin{array}{crcccccccc|l|cr}

& & 0 & 1 & 1 & 1 & 0 & 1 & 1 & 0 & \text{Minuend}  & & 118_{10}\\

-& & 1 & 0 & 0 & 1 & 1 & 0 & 0 & 1 & \text{Subtrahend}&-& 153_{10} \\ \hline

& & 0 & 1 & 1 & 1 & 0 & 1 & 1 & 0 & \text{Minuend} & & 118_{10}\\

+ & (-) & 0 & 1 & 1 & 0 & 0 & 1 & 1 & 1 & \text{Subtrahend (Zweierkomplement)} & + & (-)153_{10}\\

& { \color{blue}{}_0} & {}_1 & {}_1 & & & {}_1 & {}_1 & && \\

\hline = & & 1 & 1 & 0 & 1 & 1 & 1 & 0 & 1 & \text{Ergebnis (Zweierkomplement, negativ)} & = & -35_{10}\\ \hline \hline

& & 0 & 0 & 1 & 0 & 0 & 0 & 1 & 1 & \text{Betrag des Ergebnisses} & & 35_{10}\\

\end{array} </math>

Wäre der (blau markierte) Übertrag 1, müsste das Zweierkomplement des Ergebnisses nicht mehr gebildet werden, da die vorzeichenlose Darstellung der positiven Zahlen im Zweierkomplement gleich ist (siehe Tabelle dort). Der Übertrag wird zu den (nicht dargestellten) führenden Einsen des Zweierkomplementes addiert, wodurch im Ergebnis nur führende Nullen entstehen. Als Beispiel dient die obige Rechnung 110−23 = 87  :

<math> \begin{array}{crccccccc|l}

&     & 1  & 1 &  0 & 1 & 1 & 1 & 0 & \text{Minuend}\\

+& (-) & 1 & 1 & 0 & 1 & 0 & 0 & 1 & \text{Subtrahend (Zweierkomplement)}\\

& { \color{blue}{}_1 } & {}_1 &  & {}_1 &  &  &  &  &\\

\hline =& & 1 & 0 & 1 & 0 & 1 & 1 & 1 & \end{array} </math>

Schriftliche Multiplikation

Die Multiplikation wird im Dualsystem genauso durchgeführt wie im Dezimalsystem. Dadurch, dass nur 0 und 1 als Ziffern vorkommen, ist die schriftliche Multiplikation jedoch sogar einfacher. Das folgende Beispiel, in dem die Zahlen 1100 (12) und 1101 (13) multipliziert werden, zeigt die Vorgehensweise.

Zuerst schreibt man die Aufgabenstellung in eine Zeile und zieht zur Vereinfachung einen Strich darunter.

1100 · 1101
———————————

Die erste Ziffer des zweiten Faktors ist eine Eins und deshalb schreibt man den ersten Faktor rechtsbündig unter diese Eins.

1100 · 1101
———————————
    1100

Auch für alle weiteren Einsen des zweiten Faktors schreibt man den ersten Faktor rechtsbündig darunter.

1100 · 1101
———————————
    1100
     1100
      0000
       1100

Die so gewonnenen Zahlen zählt man dann zum Ergebnis der Multiplikation zusammen.

1100 · 1101
———————————
    1100
   + 1100
   +  0000
   +   1100
———————————
   10011100 (156)

Ein besonders einfacher Fall ist die Multiplikation einer positiven Dualzahl mit der Zahl 10 (2). In diesem Fall muss lediglich an die positive Dualzahl eine 0 angehängt werden:

1101 · 10 = 11010

11010 · 10 = 110100

usw.

Für diese Rechenoperation existieren einfache Befehle in der Digitaltechnik.

Bei der Multiplikation zweier Zweierkomplement-Dualzahlen wird der Booth-Algorithmus benutzt.

Schriftliche Division

Bei der Division zweier Dualzahlen werden folgende Algorithmen verwendet.

Am Beispiel der Division von 1000010 / 11 (entspricht 66:3 im Dezimalsystem)

   1000010 ÷ 11 = 010110 Rest 0 (= 22 im Dezimalsystem) somit mod
 − 011
 —————
   00100
   − 011
    ————
     0011
    − 011
    —————
       0

Die Anwendung der Modulo-Funktion mit dem Divisor 10 (2) auf positive Dualzahlen ergibt immer 1, wenn die letzte Ziffer des Dividenden 1 ist und 0, wenn die letzte Ziffer des Dividenden 0 ist:

1101 mod 10 = 1

1100 mod 10 = 0

Für diese Rechenoperation, die einer UND-Verknüpfung mit 1 entspricht, existieren einfache Befehle in der Digitaltechnik.

Ein besonders einfacher Fall ist die Division mit Rest einer positiven Dualzahl durch die Zahl 10 (2). In diesem Fall muss lediglich die letzte Ziffer des Dividenden gestrichen werden. Ist die letzte Ziffer des Dividenden eine 1, so verschwindet dieser Rest. Entspricht bei diesem Verfahren die Anzahl der Divisionen durch 2 der Anzahl der Stellen des Dividenden, so ist das Endergebnis immer 0:

1101 ÷ 10 = 110

110 ÷ 10 = 11

11 ÷ 10 = 1

1 ÷ 10 = 0

Für diese Rechenoperation existieren einfache Befehle in der Digitaltechnik.

Skriptfehler: Ein solches Modul „Vorlage:Anker“ ist nicht vorhanden.Umrechnen von Dualzahlen in andere Stellenwertsysteme

Durch die kleine Basis ergibt sich der Nachteil, dass Zahlen im Verhältnis zu Dezimalzahlen relativ lang und schwer zu überschauen sind (siehe Tabelle unten). Das hat zur Verbreitung des Hexadezimalsystems geführt, welches die Basis 16 besitzt. Da 16 eine Potenz von 2 ist, ist es besonders einfach möglich, Dualzahlen in Hexadezimalzahlen umzurechnen. Dazu werden je vier Stellen der Dualzahl durch eine Hexadezimalstelle ersetzt, was auch die Länge der dargestellten Zahlen um den Faktor vier verringert. Die Hexadezimalziffern mit dem Wert 0–15 werden in der Regel durch die Ziffernsymbole 0–9 und die Großbuchstaben A–F (für die Werte 10–15) dargestellt. Dadurch sind sie verhältnismäßig gut lesbar, so lässt sich zum Beispiel leicht feststellen, dass EDA5(16) größer ist als ED7A(16) wohingegen sich die entsprechenden Dualzahlen 1110110110100101(2) und 1110110101111010(2) nicht so schnell überblicken lassen.

Dualsystem 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111
Dezimalsystem 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Oktalsystem 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17
Hexadezimalsystem 0 1 2 3 4 5 6 7 8 9 A B C D E F

Vom Dualsystem ins Dezimalsystem

Um eine Dualzahl in die entsprechende Dezimalzahl umzurechnen, werden alle Ziffern jeweils mit ihrem Stellenwert (entsprechende Zweierpotenz) multipliziert und dann addiert.

Beispiel:

<math>1010_{(2)} = 1 \cdot 2^3 + 0 \cdot 2^2 + 1 \cdot 2^1 + 0 \cdot 2^0= 1 \cdot 2^3 + 1 \cdot 2^1 = 8 + 2 = 10_{(10)}</math>

Endet die Dualzahl mit einer 1, so ist die Dezimalzahl eine ungerade Zahl. Ist die letzte Ziffer der Dualzahl eine 0, so ist die Dezimalzahl gerade.

Beispiel:

<math>101001_{(2)} = 1 \cdot 2^0 + 0 \cdot 2^1 + 0 \cdot 2^2 + 1 \cdot 2^3 + 0 \cdot 2^4 + 1 \cdot 2^5 = 1 \cdot 2^0 + 1 \cdot 2^3 + 1 \cdot 2^5 = 1 + 8 + 32 = 41_{(10)}</math>
<math>101000_{(2)} = 0 \cdot 2^0 + 0 \cdot 2^1 + 0 \cdot 2^2 + 1 \cdot 2^3 + 0 \cdot 2^4 + 1 \cdot 2^5 = 1 \cdot 2^3 + 1 \cdot 2^5 = 8 + 32 = 40_{(10)}</math>

Dieses Verfahren kann auch in Form einer Tabelle aufgeschrieben werden. Dazu notiert man die einzelnen Ziffern einer Dualzahl in Spalten, die mit dem jeweiligen Stellenwert der Ziffer überschrieben sind. In der folgenden Tabelle ist der Stellenwert orange hinterlegt. In jeder der drei Zeilen des weißen Teils steht eine Dualzahl:

Stellenwert
32 16 8 4 2 1
Dualzahl 0 0 0 1 0 1 5 Dezimalzahl
1 0 0 0 1 1 35
0 0 1 0 1 0 10

Man addiert nun alle Stellenwerte, die über den Einsen der Dualzahl stehen und erhält die entsprechende grün hinterlegte Dezimalzahl. Um zum Beispiel den Dezimalwert der dritten Dualzahl zu errechnen, werden die Stellenwerte 8 und 2 addiert. Das Ergebnis ist 10.

Diese Tabellenmethode ist auch für Stellenwertsysteme zu anderen Basen möglich; die Besonderheit im Dualsystem ist, dass der jeweilige Feldeintrag ('0' oder '1') nicht erst mit der Wertigkeit der Stelle multipliziert werden muss, sondern direkt als Auswahl-Flag ('nein' / 'ja') dieser Stellenwertigkeit zur Addition verwendet werden kann.

Vom Dezimalsystem ins Dualsystem

Es gibt mehrere Möglichkeiten der Umrechnung ins Dualsystem. Im Folgenden ist die Divisionsmethode (auch Modulo-Methode genannt) am Beispiel 41(10) beschrieben:

<math>\left.\begin{matrix}
41 &: 2 &=& 20 &\mathrm{ Rest }\ \ \mathbf{1}\\
20 &: 2 &=& 10 &\mathrm{ Rest }\ \ \mathbf{0}\\
10 &: 2 &=& 5 &\mathrm{ Rest }\ \ \mathbf{0}\\
 5 &: 2 &=& 2 &\mathrm{ Rest }\ \ \mathbf{1}\\
 2 &: 2 &=& 1 &\mathrm{ Rest }\ \ \mathbf{0}\\
 1 &: 2 &=& 0 &\mathrm{ Rest }\ \ \mathbf{1}

\end{matrix}\ \right\uparrow</math>

Die entsprechende Dualzahl ergibt sich durch Notation der errechneten Reste von unten nach oben: 101001(2).

Eine andere Methode ist die Subtraktionsmethode. Bei dieser subtrahiert man jeweils die größtmögliche Zweierpotenz von der umzurechnenden Dezimalzahl. Wenn die nächstgrößte Zweierpotenz größer als die Differenz der vorherigen Subtraktion ist, so ist die Wertigkeit der nächsten Binärstelle 0. Andernfalls ist die nächste Binärstelle 1, und die Zweierpotenz wird abgezogen. Um diese Methode zu verdeutlichen, bedienen wir uns weiter des Beispiels der Zahl 41:

<math>\left.\begin{matrix}
41 &- 2^5 &=& 9 &\mathrm{ Wertigkeit }\ \ \mathbf{1}\\
 9 &- 2^4 &<& 0 &\mathrm{ Wertigkeit }\ \ \mathbf{0}\\
 9 &- 2^3 &=& 1 &\mathrm{ Wertigkeit }\ \ \mathbf{1}\\
 1 &- 2^2 &<& 0 &\mathrm{ Wertigkeit }\ \ \mathbf{0}\\
 1 &- 2^1 &<& 0 &\mathrm{ Wertigkeit }\ \ \mathbf{0}\\
 1 &- 2^0 &=& 0 &\mathrm{ Wertigkeit }\ \ \mathbf{1}

\end{matrix}\ \right\downarrow</math>

Eigenschaften

Teilbarkeit durch eine 2er Potenz

Ein Zahlensystem zur Basis n ist so oft durch die Basis n ohne Rest teilbar (i-fach, also durch ni), wie die Zahl Nullen am Ende hat (i Stück). Eine Dualzahl 1001010002 ist also dreimal durch 2 teilbar (= 23), da sie auf 3 Nullen endet.

Teilbarkeit durch 3

Sei <math>n=b_k\dots b_0</math> eine Binärzahl wobei <math>b_i\in\{0,1\}</math>. Weiter definieren wir die Menge der Einsen an geraden Stellen <math>G_{1}(n) = \{ i \mid \exists j. b_{2j}(n) = 1 \}</math> und die Menge der Einsen an ungeraden Stellen <math>U_{1}(n) = \{ i \mid \exists j. b_{2j+1}(n) = 1 \}</math>. Dann gilt für die Zahl <math>n</math> bezüglich der Teilbarkeit durch <math>3</math> (<math>\#</math> steht für die Anzahl):

<math>|\#G_{1}(n)-\#U_{1}(n)|\mod 3 = 0\implies n\text{ ist teilbar durch } 3</math>

Mit Worten ausgedrückt, eine Binärzahl ist genau dann ohne Rest durch 3 teilbar, wenn die Betragsdifferenz der Anzahl der Einsen auf den geraden Positionen und der Anzahl der Einsen auf den ungeraden Positionen durch 3 teilbar ist.

Beispiel an der Zahl <math>n=744628179621_{(10)}</math>:

Die Zahl hat folgende Binärdarstellung <math>n=1010110101011111010011000101001010100101_{(2)}</math>. Es gilt <math>|\#G_{1}(n)-\#U_{1}(n)|=|9-12|=3</math> und <math>3 \mod 3 = 0</math> und tatsächlich <math>744628179621:3=248209393207</math>

Siehe auch

Externe Links

 Commons: Binary numeral system – Sammlung von Bildern, Videos und Audiodateien
 Wiktionary: Dualsystem – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen

Einzelnachweise

  1. Nach DIN 44300, Teil 2, ist „binär“ nicht gleichbedeutend mit „dual“. „Dual“ bezieht sich auf die Darstellung von Zahlen.
  2. Polynesian people used binary numbers 600 years ago nature.com, abgerufen am 16.06.17
  3. Bibliotheca Augustana
  4. neu herausgegeben von H.Zacher: Die Hauptschriften zur Dyadik von G.W. Leibniz. Vittorio Klostermann, Frankfurt 1973
  5. Robert Ineichen: Leibniz, Caramuel, Harriot und das Dualsystem. In: Mitteilungen DMV, 2008
  6. Shirley: Binary number systems before Leibniz. In: American Journal of Physics Bd. 19, 1951, S. 452

Spenden-Adressen:
Bitcoin Icon BTC: 1EoecgUZnAjamUYaKstqwbremQqbucTaoZ
Ethereum Icon ETH: 0x0D2Ab63dfe70a7fA12f9d66eCfEA9dDc8F5173A8
XEM Icon XEM: NBZPMU-XES6ST-ITEBR3-IHAPTR-APGI3Y-RAAMHV-VZFJ
Verge Icon XVG: DGYmzxoe3ryK6MnsR13GqR9r1NThpxPcKs