|
|
(24 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| '''Dualsystem''' - Kurzbeschreibung | | '''Dualsystem''' - [[Zahlensystem]] zur Darstellung von [[Zahl]]en, die nur zwei verschiedene [[Ziffer]]n benutzt |
|
| |
|
| == Beschreibung == | | == Beschreibung == |
| {|class="wikitable float"
| | Das '''Dualsystem ''' ([[Latein|lat.]] ''dualis'' „zwei enthaltend“), auch '''Zweiersystem''' oder '''Binärsystem''' genannt, ist ein [[Zahlensystem]], das zur Darstellung von [[Zahl]]en nur zwei verschiedene [[Ziffer]]n benutzt |
| |colspan="2" style="text-align:center"|[[Dezimalzahl]]en<br /> 0 bis 15<br /> im Dualsystem
| | * Nach DIN 44300, Teil 2, ist „binär“ nicht gleichbedeutend mit „dual“. „Dual“ bezieht sich auf die Darstellung von Zahlen |
| |-
| |
| | '''Wertigkeit:''' || <div align="right">'''8 4 2 1'''</div>
| |
| |-
| |
| | Null: || <div align="right">0 0 0 0</div>
| |
| |-
| |
| | Eins: || <div align="right">0 0 0 1</div>
| |
| |-
| |
| | Zwei: || <div align="right">0 0 1 0</div>
| |
| |-
| |
| | Drei: || <div align="right">0 0 1 1</div>
| |
| |-
| |
| | Vier: || <div align="right">0 1 0 0</div>
| |
| |-
| |
| | Fünf: || <div align="right">0 1 0 1</div>
| |
| |-
| |
| | Sechs: || <div align="right">0 1 1 0</div>
| |
| |-
| |
| | Sieben: || <div align="right">0 1 1 1</div>
| |
| |-
| |
| | Acht: || <div align="right">1 0 0 0</div>
| |
| |-
| |
| | Neun: || <div align="right">1 0 0 1</div>
| |
| |-
| |
| | Zehn: || <div align="right">1 0 1 0</div>
| |
| |-
| |
| | Elf: || <div align="right">1 0 1 1</div>
| |
| |-
| |
| | Zwölf: || <div align="right">1 1 0 0</div>
| |
| |-
| |
| | Dreizehn: || <div align="right">1 1 0 1</div>
| |
| |-
| |
| | Vierzehn: || <div align="right">1 1 1 0</div>
| |
| |-
| |
| | Fünfzehn: || <div align="right">1 1 1 1</div>
| |
| |}
| |
|
| |
|
| Das '''Dualsystem ''' ([[Latein|lat.]] ''dualis'' „zwei enthaltend“), auch '''Zweiersystem''' oder '''Binärsystem''' genannt, ist ein [[Zahlensystem]], das zur Darstellung von [[Zahl]]en nur zwei verschiedene [[Ziffer]]n benutzt. Nach DIN 44300, Teil 2, ist „binär“ nicht gleichbedeutend mit „dual“. „Dual“ bezieht sich auf die Darstellung von Zahlen.
| | 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 [[Symbol]]e 0 und 1 verwendet |
| | * Die Zahlen null bis fünfzehn sind in der rechts stehenden Liste aufgeführt |
|
| |
|
| 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 [[Symbol]]e 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''') ([[Griechische Sprache|gr.]] ''δύο = zwei'') |
|
| |
|
| Das Dualsystem ist das [[Stellenwertsystem]] mit der Basis 2, liefert also die dyadische (2-adische) Darstellung von Zahlen ('''Dyadik''') ([[Griechische Sprache|gr.]] ''δύο = zwei'').
| | Aufgrund seiner Bedeutung in der [[Digitaltechnik]] ist es neben dem [[Dezimalsystem]] das wichtigste Zahlensystem |
|
| |
|
| Aufgrund seiner Bedeutung in der [[Digitaltechnik]] ist es neben dem [[Dezimalsystem]] das wichtigste Zahlensystem.
| | Die [[Zahldarstellung]]en im Dualsystem werden auch '''Dualzahlen''' oder '''Binärzahlen''' genannt |
| | | * Letztere ist die allgemeinere Bezeichnung, da diese auch verkürzt für ''[[Binärcode|binärcodierte]] Zahlen'' stehen kann |
| Die [[Zahldarstellung]]en im Dualsystem werden auch '''Dualzahlen''' oder '''Binärzahlen''' genannt. Letztere ist die allgemeinere Bezeichnung, da diese auch verkürzt für ''[[Binärcode|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. | | * 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 == | | == 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 [[Potenz (Mathematik)|Zweierpotenz]] und nicht der Zehnerpotenz. | | 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 [[Potenz (Mathematik)|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> werden in absteigender Reihenfolge rechts davon aufgeschrieben. Zur Darstellung von [[Rationale Zahl|rationalen]] oder [[Reelle Zahl|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: | | 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> werden in absteigender Reihenfolge rechts davon aufgeschrieben |
| | * Zur Darstellung von [[Rationale Zahl|rationalen]] oder [[Reelle Zahl|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} | | : <math>z_m z_{m-1} \ldots z_0\operatorname{,}z_{-1} z_{-2} \ldots z_{-n} |
Zeile 60: |
Zeile 30: |
| 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: | | 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>. | | : <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. | | Gewöhnlich werden analog zu anderen Zahlensystemen die Symbole 0 und 1 zur Darstellung der beiden Ziffern verwendet |
|
| |
|
| In älterer Literatur mit Bezug zur [[Elektronische Datenverarbeitung|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 älterer Literatur mit Bezug zur [[Elektronische Datenverarbeitung|elektronischen Datenverarbeitung]] werden manchmal die Symbole Low (L) und High (H) anstelle von 0 und 1 verwendet |
| 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 meist falsch=0 und wahr=1 gesetzt wird. | | * 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 meist 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. | | 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 Minuszeichen (−) geschrieben. | | Negative Zahlen werden im Dualsystem wie im Dezimalsystem mit einem vorangestellten Minuszeichen (−) geschrieben |
|
| |
|
| === Beispiele === | | === Beispiele === |
Zeile 82: |
Zeile 54: |
| : <math> | | : <math> |
| 1 \cdot 10^3 + 1 \cdot 10^2 + 0 \cdot 10^1 + 1 \cdot 10^0 = [1101]_{10} | | 1 \cdot 10^3 + 1 \cdot 10^2 + 0 \cdot 10^1 + 1 \cdot 10^0 = [1101]_{10} |
| </math>. | | </math> |
| | |
| Für weitere Techniken und Beispiele zum Umrechnen von Dualzahlen in Dezimalzahlen und umgekehrt: siehe Abschnitt [[#Umrechnen von Dualzahlen in andere Stellenwertsysteme|Umrechnen von Dualzahlen in andere Stellenwertsysteme]].
| |
|
| |
|
| Die Klammerung der Resultate mit der tiefgestellten 2 beziehungsweise der 10 gibt die Basis des verwendeten [[Stellenwertsystem]]s 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).
| | Für weitere Techniken und Beispiele zum Umrechnen von Dualzahlen in Dezimalzahlen und umgekehrt: siehe Abschnitt [[#Umrechnen von Dualzahlen in andere Stellenwertsysteme|Umrechnen von Dualzahlen in andere Stellenwertsysteme]] |
|
| |
|
| Verschiedene Schreibweisen der Zahl [[dreiundzwanzig]] im Dualsystem:
| | Die Klammerung der Resultate mit der tiefgestellten 2 beziehungsweise der 10 gibt die Basis des verwendeten [[Stellenwertsystem]]s 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]<sub>2</sub> | | * [10111]<sub>2</sub> |
| * 10111<sub>2</sub> | | * 10111<sub>2</sub> |
Zeile 97: |
Zeile 71: |
| * HLHHH | | * HLHHH |
| * L0LLL | | * L0LLL |
| Die gelegentlich verwendete Schreibweise 10111b bzw. 10111B ist nicht empfehlenswert, da sie mit [[Hexadezimalsystem|Hexadezimalzahlen]] verwechselt werden kann. | | Die gelegentlich verwendete Schreibweise 10111b bzw. 10111B ist nicht empfehlenswert, da sie mit [[Hexadezimalsystem|Hexadezimalzahlen]] verwechselt werden kann |
| | |
| == Anwendung in der elektronischen Datenverarbeitung ==
| |
| 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 ''[[Elektrischer Strom|Strom]] an'' / ''Strom aus'' oder ''[[Elektrische Spannung|Spannung]]'' / ''[[Masse (Elektronik)|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 [[Festkommazahl]]en oder [[Ganze Zahl|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 Zahl|rationale]] oder gar [[reelle Zahl]]en mit nicht abbrechender Dualzahl-Darstellung näherungsweise in der elektronischen Datenverarbeitung darzustellen, werden vorzugsweise [[Gleitkommazahl|Gleitkommadarstellungen]] verwendet, bei der die Zahl normalisiert und in [[Mantisse]] und [[Potenz (Mathematik)|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 (Zahl)|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>.
| |
| <!-- Durch das Speichern dieses Vorzeichenbits halbiert sich der darzustellende Wertebereich für den verfügbaren Speicher. // negative Werte sind doch auch Teil des Wertebereichs? -->
| |
| | |
| 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#Bezeichnungen|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 <math>\operatorname{lb}(10) \approx 3{,}322</math> (eine Dezimalstelle, eigentlich also <math>\operatorname{lb}(9{,}\bar{9})</math> wird maximal zu <math>\approx 3{,}322</math> Dualstellen).
| |
| | |
| == Anwendung in der Unterhaltungsmathematik ==
| |
| <div style="float:right;">[[Datei:Zahlenraten Dualsystem 2.svg|mini|250px|''Abb. 2'': Beispiel]]</div><div style="float:right;">[[Datei:Zahlenraten Dualsystem 1.svg|mini|248px|''Abb. 1'': Zahlenkarten]]</div>
| |
| Der folgende zur [[Unterhaltungsmathematik]] zählende Trick trägt zum Verständnis des Dualsystems bei und verblüfft insbesondere mathematisch weniger Geübte, indem er vermeintlich [[Außersinnliche Wahrnehmung|Hellseherei]] vortäuscht.
| |
| === Vorgehensweise ===
| |
| Eine Person A übergibt die sechs Zahlenkarten (''Abbildung 1'') einer Person B mit der Aufforderung, sich eine Zahl zwischen <math>1</math> und <math>63</math> zu merken, geheim zu halten und nur die Karten wieder zurückzugeben, auf denen die gemerkte Zahl vorkommt. Die Person A schaut sich die zurückgegebenen Karten an, addiert danach (möglichst schnell und unauffällig) deren Anfangszahlen und nennt der Person B die berechnete Summe, welche gleich der gedachten Zahl ist.
| |
| === Struktur der Karten ===
| |
| Die Zahlenkarten sind folgendermaßen strukturiert: Ist <math>n</math> eine der Zahlen <math>1</math> bis <math>63</math>, so ist <math>n</math> in genau denjenigen Kärtchen enthalten, deren Anfangszahlen die Summe <math>n</math> haben. Genauer formuliert: Nach Zerlegung einer der <math>63</math> Zahlen in [[Zweierpotenz]]-Summanden ist die betreffende Zahl in genau denjenigen Karten enthalten, deren Anfangszahlen diese Summanden sind.
| |
| | |
| Der Zahlentrick beruht darauf, dass sich jede [[natürliche Zahl]] eindeutig als Summe von Zweierpotenzen darstellen lässt.
| |
| === Erläuterndes Beispiel ===
| |
| Die Zahl <math>23</math> ist wegen <math>23=16+4+2+1 =[10111]_2</math> in den Karten mit den Anfangszahlen <math>16</math>, <math>4</math>, <math>2</math> und <math>1</math> enthalten. (''Abbildung 2'').
| |
| | |
| == Grundrechenarten im Dualsystem ==
| |
| Analog zu den Zahlen im [[Dezimalsystem]] lassen sich mit Dualzahlen die gängigen [[Arithmetik|arithmetischen]] Grundoperationen [[Addition]], [[Subtraktion]], [[Multiplikation]] und [[Division (Mathematik)|Division]] durchführen.
| |
| Tatsächlich werden die benötigten [[Algorithmus|Algorithmen]] sogar einfacher und lassen sich effizient mit logischen Schaltungen elektronisch realisieren. Die Einführung von Dualzahlen in der Rechentechnik brachte daher viele Vorteile.
| |
| | |
| {| cellspacing="10" cellpadding="0"
| |
| ||
| |
| {| class="wikitable"
| |
| ! style="background-color:#efefef;" |Addition
| |
| ! style="background-color:#efefef;" |Beispiel
| |
| |-
| |
| |
| |
| 0 + 0 = 0<br />
| |
| 0 + 1 = 1<br />
| |
| 1 + 0 = 1<br />
| |
| 1 + 1 = 0, Übertrag (''carry'') 1
| |
| |<math>
| |
| {\begin{matrix}
| |
| &1011_2\\
| |
| \operatorname{+}&\ \ \ 11_2\\
| |
| \end{matrix}
| |
| \over
| |
| \begin{matrix}
| |
| &\ \ 1110_2\\
| |
| \end{matrix}}
| |
| </math>
| |
| |}
| |
| ||
| |
| {| class="wikitable"
| |
| ! style="background-color:#efefef;" |Subtraktion
| |
| ! style="background-color:#efefef;" |Beispiel
| |
| |-
| |
| |
| |
| 0 − 0 = 0<br />
| |
| 0 − 1 = 1, Übertrag (''borrow'') 1<br />
| |
| 1 − 0 = 1<br />
| |
| 1 − 1 = 0
| |
| ||<math>
| |
| \begin{matrix}
| |
| &1011_2\\
| |
| {-\ }&\ \ 111_2\\
| |
| \end{matrix}
| |
| \over
| |
| \begin{matrix}
| |
| &\ \ \ \ \ 100_2
| |
| \end{matrix}
| |
| </math>
| |
| |}
| |
| |-----
| |
| | style="vertical-align:top;"|
| |
| {| class="wikitable"
| |
| ! style="background-color:#efefef;" |Multiplikation
| |
| ! style="background-color:#efefef;" |Beispiel
| |
| |-
| |
| |
| |
| 0 <math>\cdot</math> 0 = 0<br />
| |
| 0 <math>\cdot</math> 1 = 0<br />
| |
| 1 <math>\cdot</math> 0 = 0<br />
| |
| 1 <math>\cdot</math> 1 = 1
| |
| ||<math>1010_2{\cdot}11_2=11110_2</math>
| |
| |}
| |
| ||
| |
| {| class="wikitable"
| |
| ! style="background-color:#efefef;" |Division
| |
| ! style="background-color:#efefef;" |Beispiel
| |
| |-
| |
| |
| |
| 0 / 0 = n.def.<br />
| |
| 0 / 1 = 0<br />
| |
| 1 / 0 = n.def.<br />
| |
| 1 / 1 = 1
| |
| |<math>1010_2{/}10_2=101_2</math>
| |
| |}
| |
| |}
| |
| | |
| === Schriftliche Addition ===
| |
| | |
| {| class="wikitable float-right" style="text-align:center;"
| |
| |- style="background:#e0e0e0"
| |
| | style="min-width:18px;" | ''A''
| |
| | style="min-width:18px;" | ''B''
| |
| | style="min-width:18px; border-right:3px double darkgray;" | ''M<sub>1</sub>''
| |
| | style="min-width:18px;" | ''M<sub>2</sub>''
| |
| | style="min-width:18px;" | ''E''
| |
| |-
| |
| | 0 || 0
| |
| | style="border-right:3px double darkgray;" | 0
| |
| | 0 || 0
| |
| |-
| |
| | 0 || 0
| |
| | style="border-right:3px double darkgray;" | 1
| |
| | 0 || 1
| |
| |-
| |
| | 0 || 1
| |
| | style="border-right:3px double darkgray;" | 0
| |
| |0 || 1
| |
| |-
| |
| | 0 || 1
| |
| | style="border-right:3px double darkgray;" | 1
| |
| | 1 || 0
| |
| |-
| |
| | 1 || 0
| |
| | style="border-right:3px double darkgray;" | 0
| |
| | 0 || 1
| |
| |-
| |
| | 1 || 0
| |
| | style="border-right:3px double darkgray;" | 1
| |
| | 1 || 0
| |
| |-
| |
| | 1 || 1
| |
| | style="border-right:3px double darkgray;" | 0
| |
| | 1 || 0
| |
| |-
| |
| | 1 || 1
| |
| | style="border-right:3px double darkgray;" | 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.
| |
| | |
| : <math>0 - 0 = 0</math>
| |
| : <math>0 - 1 = 1</math>, Übertrag (''borrow'') 1
| |
| : <math>1 - 0 = 1</math>
| |
| : <math>1 - 1 = 0</math>
| |
| | |
| 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 [[Zweierkomplement]]es dieser Zahl. Die Subtraktion einer positiven Zahl ergibt nämlich das gleiche Ergebnis wie die ''Addition'' der entsprechenden [[Negative Zahl|''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 [[Zweierkomplement#Motivation|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:
| |
| | |
| : <math>1101 \cdot 10 = 11010</math>
| |
| | |
| : <math>11010 \cdot 10 = 110100</math>
| |
| | |
| 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:
| |
| | |
| : <math>1101 \mod 10 = 1</math>
| |
| | |
| : <math>1100 \mod 10 = 0</math>
| |
| | |
| Für diese Rechenoperation, die einer [[Konjunktion (Logik)|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:
| |
| | |
| : <math>1101 \div 10 = 110</math>
| |
| | |
| : <math>110 \div 10 = 11</math>
| |
| | |
| : <math>11 \div 10 = 1</math>
| |
| | |
| : <math>1 \div 10 = 0</math>
| |
| | |
| Für diese Rechenoperation existieren einfache Befehle in der Digitaltechnik.
| |
| | |
| == {{Anker|Umrechnung}}Umrechnen von Dualzahlen in andere Stellenwertsysteme ==
| |
| {{Hauptartikel|Zahlbasiswechsel}}
| |
| 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 [[Hexadezimalsystem]]s 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<sub>(16)</sub> größer ist als ED7A<sub>(16)</sub>, wohingegen sich die entsprechenden Dualzahlen 1110110110100101<sub>(2)</sub> und 1110110101111010<sub>(2)</sub> nicht so schnell überblicken lassen.
| |
| | |
| {| class="wikitable"
| |
| |-
| |
| ! bgcolor="#f0f0f0"|Dualsystem
| |
| | 0|| 1|| 10|| 11
| |
| | 100|| 101|| 110|| 111
| |
| |1000||1001||1010||1011
| |
| |1100||1101||1110||1111
| |
| |-
| |
| ! bgcolor="#f0f0f0"|[[Dezimalsystem]]
| |
| | 0 || 1|| 2|| 3|| 4|| 5|| 6|| 7
| |
| | 8 || 9||10||11||12||13||14||15
| |
| |-
| |
| ! bgcolor="#f0f0f0"|[[Oktalsystem]]
| |
| | 0 || 1|| 2|| 3|| 4|| 5|| 6|| 7
| |
| | 10||11||12||13||14||15||16||17
| |
| |-
| |
| ! bgcolor="#f0f0f0"|[[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:
| |
| | |
| {| class="wikitable"
| |
| |-
| |
| |rowspan="2"|
| |
| |colspan="6" style="background:orange; text-align:center;"| Stellenwert
| |
| |rowspan="2" colspan="2"|
| |
| |-style="background:orange"
| |
| |32||16||8||4||2||1
| |
| |-
| |
| |rowspan="3" style="text-align:center;"|Dualzahl
| |
| | 0 || 0 || 0 || 1 || 0 || 1 ||style="background:lightgreen"| 5
| |
| |rowspan="3" style="background:lightgreen"|Dezimalzahl
| |
| |-
| |
| | 1 || 0 || 0 || 0 || 1 || 1 ||style="background:lightgreen"| 35
| |
| |-
| |
| | 0 || 0 || 1 || 0 || 1 || 0 ||style="background:lightgreen"| 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 [[Division mit Rest|Modulo]]-Methode genannt) am Beispiel 41<sub>(10)</sub> 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<sub>(2)</sub>.
| |
| | |
| 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 ===
| |
| Eine Zahl, dargestellt zur Basis <math>n</math>, ist so oft durch die Basis <math>n</math> ohne Rest teilbar (<math>i</math>-fach, also durch <math>n^i</math>), wie die Zahl Nullen am Ende hat (<math>i</math> Stück). Eine Dualzahl <math>100101000_2</math> (im Dezimalsystem <math>296</math>) ist also dreimal durch <math>2</math> teilbar (<math>=2^3</math>), da sie auf drei Nullen endet und tatsächlich gilt <math>296=2^3\cdot 37</math>
| |
| | |
| === 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. Man spricht hier auch von der [[Quersumme#Alternierende Quersumme|alternierenden Quersumme]], die durch 3 teilbar sein muss.
| |
| | |
| 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>
| |
| | |
| == Ähnliche Zahlensysteme ==
| |
| Das [[Unärsystem]], 1er-System oder [[Strichliste]] ist das einfachste Zahlensystem.
| |
| | |
| Andere gängige [[Stellenwertsystem]]e sind
| |
| * [[Ternärsystem]] (3er-System)
| |
| * [[Quaternär]] (4er-System)
| |
| * [[Quinär]] (5er-System)
| |
| * [[Senär]] (6er-System)
| |
| * [[Dezimalsystem]] (10er-System)
| |
| * [[Hexadezimalsystem]] (16er-System)
| |
|
| |
|
| <noinclude> | | <noinclude> |
Zeile 525: |
Zeile 87: |
| # https://de.wikipedia.org/wiki/Dualsystem | | # https://de.wikipedia.org/wiki/Dualsystem |
| ---- | | ---- |
| [[Kategorie:Zeichenkodierung]]
| |
| [[Kategorie:Zahlensystem]] | | [[Kategorie:Zahlensystem]] |
| [[Kategorie:Binärcode]]
| |
| </noinclude> | | </noinclude> |