<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=BCD-Code</id>
	<title>BCD-Code - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=BCD-Code"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=BCD-Code&amp;action=history"/>
	<updated>2026-05-19T01:18:26Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=BCD-Code&amp;diff=24036&amp;oldid=prev</id>
		<title>imported&gt;Aka: Auslassungspunkte</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=BCD-Code&amp;diff=24036&amp;oldid=prev"/>
		<updated>2026-03-05T08:30:30Z</updated>

		<summary type="html">&lt;p&gt;Auslassungspunkte&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Binärcode&lt;br /&gt;
| Name = &lt;br /&gt;
| Stellenzahl = 4&lt;br /&gt;
| bewertbar = ja&lt;br /&gt;
| stetig = nein&lt;br /&gt;
| Gewicht = 3&lt;br /&gt;
| Minimaldistanz = 1&lt;br /&gt;
| Maximaldistanz = 4&lt;br /&gt;
| Hamming-Abstand = 1…4&lt;br /&gt;
| Redundanz = &amp;lt;span style=&amp;quot;font-size:90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;4 - \mathrm{lb}\,10&amp;lt;/math&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;nbsp;bit&amp;lt;br&amp;gt;0,678&amp;amp;#8239;bit&amp;lt;br&amp;gt;16,95 %&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable float-right&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#FFC0C0&amp;quot; colspan=&amp;quot;3&amp;quot;|Codetabelle&lt;br /&gt;
|-&lt;br /&gt;
! Dezimal&lt;br /&gt;
! 8-4-2-1-BCD-&amp;lt;br /&amp;gt;kodiert&lt;br /&gt;
! Hexadezimal&lt;br /&gt;
|-&lt;br /&gt;
|0 ||0 0 0 0||0&lt;br /&gt;
|-&lt;br /&gt;
|1 ||0 0 0 1||1&lt;br /&gt;
|-&lt;br /&gt;
|2 ||0 0 1 0||2&lt;br /&gt;
|-&lt;br /&gt;
|3 ||0 0 1 1||3&lt;br /&gt;
|-&lt;br /&gt;
|4 ||0 1 0 0||4&lt;br /&gt;
|-&lt;br /&gt;
|5 ||0 1 0 1||5&lt;br /&gt;
|-&lt;br /&gt;
|6 ||0 1 1 0||6&lt;br /&gt;
|-&lt;br /&gt;
|7 ||0 1 1 1||7&lt;br /&gt;
|-&lt;br /&gt;
|8 ||1 0 0 0||8&lt;br /&gt;
|-&lt;br /&gt;
|9 ||1 0 0 1||9&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:Code BCD.svg|mini|hochkant=0.85|Codetafel: 8-4-2-1-BCD-Code (die grauen Felder zeigen die [[Pseudotetrade]]n und gehören nicht mehr dazu)]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;BCD-Code&amp;#039;&amp;#039;&amp;#039; steht im [[Englische Sprache|Englischen]] für &amp;#039;&amp;#039;&amp;#039;binary-coded decimal&amp;#039;&amp;#039;&amp;#039;, also &amp;#039;&amp;#039;[[Dualsystem|dualkodierte]] Dezimalziffer&amp;#039;&amp;#039;. Dabei wird jede dezimale Ziffer&amp;amp;nbsp;0 bis&amp;amp;nbsp;9 durch jeweils vier [[Bit]] dargestellt (0000 bis 1001, siehe Codetabelle), also in einem Halbbyte ([[Nibble]]). Eine andere Bezeichnung ist &amp;#039;&amp;#039;&amp;#039;8-4-2-1-BCD-Code&amp;#039;&amp;#039;&amp;#039;. Die Ziffernfolge 8-4-2-1 steht dabei für die [[Stellenwertsystem|Werte der Stellen]] in einer dualkodierten Dezimalziffer. In einigen Fällen wird mit BCD die allgemeine [[Binärcode|Binärkodierung]] einzelner Dezimalziffern bezeichnet (siehe [[#Andere BCD-Codes|weiter unten]]). Der BCD-Code sollte nicht mit dem [[BCD-Zählcode]] verwechselt werden.&lt;br /&gt;
&lt;br /&gt;
== Kodierung ==&lt;br /&gt;
Um eine Zahl als 8-4-2-1-BCD-Zahl darzustellen, wird jede dezimale Ziffer (0 bis 9) durch jeweils vier [[Bit]] dargestellt (0000 bis 1001, siehe Codetabelle), also in einem Halbbyte ([[Nibble]]).&lt;br /&gt;
Die verbleibenden sechs Werte (1010&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; bis 1111&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;), die mit vier Bit darstellbar sind, stellen keine gültigen BCD-Zahlen dar und werden auch als [[Pseudotetrade]]n bezeichnet.&amp;lt;ref&amp;gt;{{Literatur |Autor=Hans-Jochen Schneider |Titel=Lexikon der Informatik und Datenverarbeitung |Auflage=2 |Verlag=R. Oldenbourg Verlag |Ort=München / Wien |Datum=1986 |ISBN=3-486-22662-2}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Literatur |Autor=K. Steinbuch, W. Weber |Titel=Taschenbuch der Informatik |Band=2 |Auflage=3 |Verlag=Springer Verlag |Ort=Berlin |Datum=1974 |ISBN=3-540-06241-6 |JahrEA=1967}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Kodierung von Zahlen mit mehr als einer Dezimalziffer werden die BCD-Darstellungen der einzelnen Ziffern hintereinander gesetzt (z.&amp;amp;nbsp;B. wird die Zahl&amp;amp;nbsp;2687 als 0010&amp;amp;nbsp;0110&amp;amp;nbsp;1000&amp;amp;nbsp;0111 dargestellt). Mit einem [[Byte]] (8&amp;amp;nbsp;Bit) können zwei Dezimalziffern dargestellt werden. Werden die 4&amp;amp;nbsp;Bits einer BCD-Zahl jeweils in den niederwertigen Bits kodiert und die restlichen 4&amp;amp;nbsp;Bits mit Nullen aufgefüllt, so spricht man von einer &amp;#039;&amp;#039;ungepackten&amp;#039;&amp;#039; BCD-Zahl. Werden beide Hälften eines Bytes mit je einer BCD-Zahl belegt, so nennt man dies entsprechend eine &amp;#039;&amp;#039;gepackte&amp;#039;&amp;#039; BCD-Zahl.&lt;br /&gt;
&lt;br /&gt;
Die Zahl 10 ist die kleinste Zahl, die binär (0000&amp;amp;nbsp;1010) und BCD (0001&amp;amp;nbsp;0000) unterschiedlich kodiert wird.&lt;br /&gt;
Da in hexadezimaler Darstellung vier Bit einer Ziffer entsprechen, sind BCD-kodierte Zahlen in hexadezimaler Schreibweise direkt visuell ablesbar. Dies gilt auch für mehrstellige Zahlen.&lt;br /&gt;
&lt;br /&gt;
Die Darstellung von vorzeichenbehafteten Zahlen erfordert ein weiteres separates Bit, wenn der kodierte Bereich für negative und positive Zahlen gleich sein soll.&lt;br /&gt;
Mit 16&amp;amp;nbsp;Bit sind dadurch nur noch 3&amp;amp;nbsp;Stellen kodierbar (−999 bis +999), weil für die 4.&amp;amp;nbsp;Stelle keine 4&amp;amp;nbsp;Bit mehr zur Verfügung stehen.&lt;br /&gt;
Kodierungen durch [[Pseudotetrade]]n sind nur möglich, wenn der Darstellungsbereich asymmetrisch ist (z.&amp;amp;nbsp;B. −09,99&amp;amp;nbsp;°C bis +99,99&amp;amp;nbsp;°C) oder wenn die höchstwertige Ziffer maximal den Wert 7 annehmen kann (z.&amp;amp;nbsp;B. −199,9&amp;amp;nbsp;°C bis +199,9&amp;amp;nbsp;°C).&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
BCD-Arithmetik wird heutzutage nur noch selten angewendet, da sie den Speicher verschwenderisch nutzt und gegenüber 32-bit-[[Gleitkommazahl]]en nur wenige Vorteile liefert. Allerdings wird sie überwiegend im Finanzwesen aus Tradition und auch aus Unwissenheit heraus weiter verwendet. Eine Darstellung von Salden und Transaktionen mit möglichen Rundungsfehlern und Denormalen sowie mit nur 7 signifikanten Stellen ist aus offensichtlichen Gründen unerwünscht. Insbesondere bei großen Buchungen oder Salden würde hierdurch regelmäßig Geld „verschwinden“. Ab einem gewissen Vermögen wäre es technisch gar nicht mehr möglich, normale Geldbeträge zu empfangen. Die BCD-Darstellung umgeht dieses Problem. Jedoch wäre die seit vielen Jahren als Bibliothek verfügbare und mittlerweile voll in Hardware unterstützte 64/128-bit Ganzzahl-Arithmetik im Vergleich zu BCD eine deutlich effizientere Lösung. Ein 64-bit Register vermag das Zehnfache des gesamten Weltvermögens in Tausendstel-Auflösung darzustellen, Überläufe sind spätestens bei einer 128-Bit Zahl nicht mehr realistisch. Auch in Teilen der Wissenschaft wird gelegentlich noch BCD verwendet, wenn die Korrektheit aller Dezimalstellen oder eine strikt deterministische Berechnung (die gleichen Operationen mit der gleichen Eingabe erzeugen stets die gleiche Ausgabe) benötigt wird. Diese ist z.&amp;amp;nbsp;B. bei 32-bit oder 64-bit Gleitkommazahlen auf einer weit verbreiteten Prozessorplatform nicht gegeben (80 Bit Rechenregister, 32/64 Bit Speicher). Auch hier gäbe es deutlich elegantere und effizientere Lösungen mit sehr guter Bibliotheks- und Hardwareunterstützung. Dennoch verwendet man oft weiter u.&amp;amp;nbsp;a. das &amp;#039;&amp;#039;Densely Packed Decimal Encoding&amp;#039;&amp;#039;, das auf einigen [[Großrechner]]n auch direkt von der Hardware unterstützt wird,&amp;lt;ref&amp;gt;[https://web.archive.org/web/20140228091140/http://ieeexplore.ieee.org/xpl/login.jsp?tp=&amp;amp;arnumber=5388585&amp;amp;url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F5288520%2F5388570%2F05388585.pdf%3Farnumber%3D5388585 Decimal floating-point support on the IBM System z10 processor]&amp;lt;/ref&amp;gt; aber über Software-Bibliotheken auch auf anderen Rechnern verfügbar ist, bis hinunter zu modernen technisch-wissenschaftlichen Taschenrechnern.&amp;lt;!-- z.&amp;amp;nbsp;B. WP 34s, vermutlich auch HP Prime --&amp;gt; Außerdem wird die BCD-Codierung noch für Uhren eingesetzt&amp;lt;ref&amp;gt;[https://de.wikihow.com/Eine-bin%C3%A4re-Uhr-ablesen BCD für Uhren], abgerufen am 23. April 2019&amp;lt;/ref&amp;gt;, unter anderem codiert DCF77 seit 1973 die gesetzliche Zeit in BCD-Kodierung mit Paritätsprüfung. Das Märchen vom Weltuntergang zum Jahreswechsel 1999/2000 basierte auf der irrigen Vorstellung, Computer würden das Datum in zweistelliger BCD-Form speichern, was zur Jahrtausendwende zum Überlauf und zur unweigerlichen Katastrophe führen würde.&lt;br /&gt;
&lt;br /&gt;
BCD-Arithmetik stammt aus Zeiten, in denen man den Aufwand der Wandlung zwischen interner Repräsentation und externer Darstellung gering halten wollte. Die fehlenden Rundungsfehler der Darstellung von Dezimalzahlen kann man durch Gleitkommazahlen mit Basis-10-Exponent oder durch Festkommazahlen mit Basis-10-Exponent genauso erreichen. Die Verarbeitungsgeschwindigkeit dieser Darstellung ist für heutige Prozessoren um 2 bis 2&amp;amp;nbsp;1/2 Größenordnungen höher als die der BCD-Darstellung.&lt;br /&gt;
Die Zahl wird dazu nicht in der Form M&amp;amp;nbsp;·&amp;amp;nbsp;2&amp;lt;sup&amp;gt;E&amp;lt;/sup&amp;gt;, sondern in der Form M&amp;amp;nbsp;·&amp;amp;nbsp;10&amp;lt;sup&amp;gt;E&amp;lt;/sup&amp;gt; gespeichert. M ist die (ganzzahlige) Mantisse und E ist der Exponent. Beide werden binär abgespeichert, für kaufmännische Probleme ist E ohnehin meist fest und beträgt −2 (die meisten Rechnungen) oder −4 (Telefonrechnungen).&lt;br /&gt;
&amp;lt;!-- Anwendung findet die BCD-Darstellung in der heute verbreiteten Programmiersprache [[COBOL]]. Diese stellt für BCD-Zahlen die Datentypen &amp;lt;code&amp;gt;COMPUTATIONAL−3&amp;lt;/code&amp;gt; beziehungsweise &amp;lt;code&amp;gt;PACKED DECIMAL&amp;lt;/code&amp;gt; zur Verfügung. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In [[Rechenwerk]]en wird der BCD-Code wenig eingesetzt, weil Schaltungen, die mit BCD-Zahlen rechnen, erheblich mehr Schaltglieder ([[Logikgatter|Gatter]]) benötigen als Schaltungen, die mit [[Dualsystem|Dualzahlen]] arbeiten. Der Code findet jedoch gelegentlich in Steuerungssystemen, zum Beispiel zur Ansteuerung von [[Flüssigkristallanzeige|LCD]]- oder [[Leuchtdiode|LED]]-Zahlendisplays sowie dem Versenden von SMS-Nachrichten im sogenannten PDU-Format Anwendung.&lt;br /&gt;
&lt;br /&gt;
Heutige Prozessoren haben entweder keinerlei Unterstützung von BCD-Arithmetik mehr oder diese ist auf dem Stand von 8-Bit-Prozessoren stehengeblieben (d.&amp;amp;nbsp;h., es werden 8-Bit-Addition und 8-Bit-Subtraktion unterstützt) und ist mittlerweile fast unvorstellbar langsam (bis 71 Takte Latenz). Es gab aber Prozessoren mit umfangreicher Unterstützung von BCD-Arithmetik (z.&amp;amp;nbsp;B. der Sharp SC61860 im [[Sharp PC-1401]] oder die [[HP Saturn|HP-Saturn]]-Prozessorfamilie, die in Taschenrechnern der [[HP 32]]/[[HP 39|39]]/[[HP 40|40]]/[[HP 42|42]]/[[HP 48|48]]/[[HP 49|49]]/[[HP 50|50]]-Serien bis ins Jahr 2015 Verwendung fand). Der Prozessor der gesamten HP-Serie 80 beinhaltete ebenfalls eine umfangreiche BCD-Unterstützung. Sämtliche arithmetische Berechnungen wurden in BCD durchgeführt. Die Technologie des Prozessors bildete die Grundlage für die Saturn-Taschenrechner-CPUs. Auch Intel-x86-Prozessoren besitzen im 16-Bit- und 32-Bit-Modus Befehle für Berechnungen im BCD-Format, über die mit Geschick auch viele andere sonst sperrig zu implementierende Bitmanipulationen durchgeführt werden können. Im 64-Bit-Modus unterstützen Intel-Prozessoren hingegen keinen einzigen Befehl zur BCD-Arithmetik mehr. Es gibt einen Befehl zur Wandlung von 80-Bit-BCD in 80-Bit-double&amp;amp;nbsp;extended (FBLD [mem80]). Die eigentlichen Berechnungen werden immer im Binärsystem durchgeführt.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren wird der BCD-Code benutzt, um die Uhrzeit im [[DCF77]]-Signal zu kodieren.&lt;br /&gt;
Digitaluhren laufen im Innern im BCD-Code. Gegenüber Binärzählern sind keine weiteren Gatter notwendig. Die Umwandlung des Zählerstandes mittels LC-Display ist aber deutlich einfacher.&lt;br /&gt;
Einige [[Analog-Digital-Umsetzer#Single-Slope-Umsetzer (Sägezahn-/Einrampenverfahren)|AD-Umsetzer]] liefern ihr Messergebnis direkt als BCD-Zahl ab.&lt;br /&gt;
&lt;br /&gt;
Die [[3GPP]] Standards für Mobilfunknetze sehen für die [[Rufnummer]] (&amp;#039;&amp;#039;Dialling Number/SCC String&amp;#039;&amp;#039;) einen BCD-codierten Bereich von 10 Bytes vor.&amp;lt;ref&amp;gt;{{cite web|url=https://www.etsi.org/deliver/etsi_ts/131100_131199/131102/09.18.01_60/ts_131102v091801p.pdf|title=Universal Mobile Telecommunications System (UMTS); LTE; Characteristics of the Universal Subscriber Identity Module (USIM) application (3GPP TS 31.102 version 9.18.1 Release 9)|publisher=ETSI|date=2017-04 |language=en}}&amp;lt;/ref&amp;gt; Die Pseudotetraden werden dabei teilweise mitverwendet: 1010 (*), 1011(#), 1100 (A), 1101 (B), 1110 (C), 1111 (D). Das „D“ kodiert dabei nicht im Wählalphabet, sondern bezeichnet abhängig vom Kontext eine Endemarkierung oder ist ein Platzhalter für mehrere Nummern. Hierin unterscheidet sich der Mobilfunk von vorherigen Anwendungen mit [[Mehrfrequenzwahlverfahren]] an Nebenstellenanlagen, wo es die Kurzwahl einleitete. Im Rahmen von [[USSD-Codes]] sind [[Telefontastatur#Stern|Stern-]] und [[Telefontastatur#Raute|Rautetasten]] in der Verwendung vorgegeben.&lt;br /&gt;
&lt;br /&gt;
== Andere BCD-Codes ==&lt;br /&gt;
Neben der oben beschriebenen 8-4-2-1-Codierung, welche auch als &amp;#039;&amp;#039;Natural Binary-Coded Decimal&amp;#039;&amp;#039; (NBCD) bezeichnet wird, gibt es eine ganze Reihe weiterer Codierungen für BCD-Zahlen. Beispielsweise sind noch der [[1-aus-n-Code|1-aus-10-Code]], 2-aus-5-Code, 5-4-2-1-Code sowie der 2-4-2-1-Code (auch [[Aiken-Code]]), [[Exzess-3-Code]] sowie der [[Gray-Code]] gebräuchlich. Diese unterscheiden sich, wie zum Teil in der Bezeichnung erkennbar ist, in der Stellenwertigkeit der einzelnen Bits.&lt;br /&gt;
Der 1-aus-10-Code und der 2-aus-5-Code dienen in erster Linie zur Fehleranalyse.&lt;br /&gt;
Mit Hilfe der [[Chen-Ho encoding|Chen-Ho-Kodierung]] oder der [[Densely Packed Decimal Encoding|Densely-Packed-Decimal-Kodierung]] lassen sich 3&amp;amp;nbsp;Dezimalziffern durch 10&amp;amp;nbsp;Bits anstelle von 12&amp;amp;nbsp;Bits kodieren. Dies bietet eine 20 % bessere Effizienz, weil es bei 1024 Möglichkeiten nur 24&amp;amp;nbsp;ungenutzte Codeworte gibt.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.sps-lehrgang.de/bcd-code/ BCD – Binär Codierte Dezimalzahlen]&lt;br /&gt;
* [http://ih7.theoinf.tu-ilmenau.de/lehre/ro/applet/Zahlen.html Ein Java-Applet zum Rechnen mit BCD-Zahlen]&lt;br /&gt;
* [https://www.unitjuggler.com/numbersystems-umwandeln-von-decimal-nach-bcd.html Umwandeln von BCD-Codes in andere Zahlensysteme]&lt;br /&gt;
* [https://speleotrove.com/decimal/DPDecimal.html A Summary of Densely Packed Decimal encoding] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Binärcode]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Aka</name></author>
	</entry>
</feed>