DE60131247T2 - Dezimal-Binär Kodierer/Dekodierer - Google Patents

Dezimal-Binär Kodierer/Dekodierer Download PDF

Info

Publication number
DE60131247T2
DE60131247T2 DE60131247T DE60131247T DE60131247T2 DE 60131247 T2 DE60131247 T2 DE 60131247T2 DE 60131247 T DE60131247 T DE 60131247T DE 60131247 T DE60131247 T DE 60131247T DE 60131247 T2 DE60131247 T2 DE 60131247T2
Authority
DE
Germany
Prior art keywords
binary
decimal
digits
decimal digits
characters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60131247T
Other languages
English (en)
Other versions
DE60131247D1 (de
Inventor
Michael Frederic c/o IBM UK L Winchester Cowlishaw
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE60131247D1 publication Critical patent/DE60131247D1/de
Application granted granted Critical
Publication of DE60131247T2 publication Critical patent/DE60131247T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/02Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
    • H03M7/12Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word having two radices, e.g. binary-coded-decimal code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Analogue/Digital Conversion (AREA)
  • Error Detection And Correction (AREA)

Description

  • Die vorliegende Erfindung betrifft die Umwandlung von Dezimalzahlen in Binärzahlen und umgekehrt, insbesondere zur Anwendung in Rechensystemen und dergleichen.
  • Die menschliche Mathematik beruht größtenteils auf dem Zehnersystem, wahrscheinlich auf Grund der biologischen Tatsache (bzw. dem Zufall), dass wir an beiden Händen fünf Finger haben. Im Gegensatz dazu verwenden moderne digitale Rechnersysteme aus physikalischen Gründen für ihre interne Verarbeitung Binärzahlen, wobei eine Eins durch das Vorhandensein eines Signals und eine Null durch die Abwesenheit eines Signals (oder umgekehrt) dargestellt werden. Folglich werden einem Rechner die meisten numerischen Eingabedaten in Dezimalform dargestellt. Diese müssen dann für die Verarbeitung in Binärzahlen und danach für die Ausgabe zurück in Dezimalzahlen umgewandelt werden.
  • Es gibt mehrere bekannte Verfahren zur Darstellung von Dezimalzahlen als Binärzahlen. Wenn man lediglich ganze Zahlen in Betracht zieht, so gibt es eindeutig eine direkte Abbildung einer ganzen Dezimalzahl auf ihre entsprechende ganze Binärzahl (zum Beispiel wird 235 zu 11101011). Geht man zu reellen Zahlen über, so besteht der natürlichste Ansatz möglicherweise im Einfügen eines "Dezimal"-Kommas in die Binärzahl, so dass die erste Stelle rechts des "Dezimal"-Kommas 1/2 und die nte Stelle 1/2n darstellen. Ein Problem mit diesem Ansatz besteht darin, dass 0,1 (als Dezimale) binär ein unendlicher periodischer Bruch ist und folglich nicht genau dargestellt werden kann. Dies führt zu möglichen Rundungsfehlern, die durch wiederholte Umwandlungen von Dezimalzahlen zu Binärzahlen und wieder zurück verschlimmert werden können.
  • Ein leicht unterschiedlicher Ansatz besteht in der Erweiterung der ganzzahligen Darstellung, um mit reellen Zahlen zurechtzukommen, indem die Stellung eines Dezimalkommas unter Verwendung einer ganzzahligen Hochzahl separat erfasst wird (dies kann eher als reelle Gleitkommazahl als Festkommazahl angesehen werden). Somit könnte 235 je nach Wert der Hochzahl 23,5, 2,35, 0,235 usw. betragen. Mit diesem Ansatz wird zwar das oben erwähnte Problem des unendlichen periodischen Bruchs überwunden, aber er ist noch immer nicht vollständig zufriedenstellend. Die Umwandlung zwischen Binär- und Dezimalzahlen ist im Hinblick auf den Hardwareaufbau nicht besonders einfach (solche Einrichtungen werden aus Geschwindigkeitsgründen nahezu immer in Hardware ausgeführt). Der allgemeine Grund dafür liegt darin, dass eine derartige Umwandlung eine Binäraddition an Stelle einer einfachen bitweisen Verarbeitung benötigt. Ebenso ist es bei Dezimalzahlen relativ gebräuchlich, Dezimalstellen für die Ausgabe zu streichen oder diese zu runden, und diese Codierungstechnik bietet keinen schnellen Weg zum Ausführen einer derartigen Dezimalstellenstreichung oder Rundung (d. h., ohne zunächst eine Umwandlung einer kompletten Zahl durchzuführen). Wenn zum Beispiel 01111111 1,27 mit einer geeigneten Hochzahl darstellt, ergibt die Rundung 1,3, während 01111100, 1,24 darstellend, auf 1,2 gerundet wird.
  • Ein Weg zur Umgehung dieser Probleme besteht in der Verwendung von binär codierten Dezimalen. Hier wird jede Dezimalziffer (0 bis 9) durch eine entsprechende Binärzahl mit vier Binärzeichen codiert, so dass dann eine Folge von Dezimalziffern durch Verkettung der Binärzahlen mit vier Binärzeichen dargestellt werden kann. Hierdurch wird eine schnelle Wiedergewinnung jeder beliebigen Dezimalziffer unabhängig von den anderen ermöglicht, woraus sich eine einfache Rundung und Dezimalstellenstreichung ergibt. Dies wurde jedoch auf Kosten eines erheblichen Verlusts an Speichernutzungsgrad erreicht. So ist es möglich, mit vier Binärzeichen die Ziffern 0 bis 15 statt nur 0 bis 9 speichern.
  • Man kann den Speichernutzungsgrad formal messen, indem man berücksichtigt, dass die Anzahl von Ziffern Nr, die für das Speichern einer ganzen Zahl X unter Verwendung der Basis r benötigt wird, Nr ≈ logr (X) beträgt. Asymptotisch (d. h. für sehr hohe Zahlen) beträgt somit das Verhältnis der für das binäre Speichern einer gegebenen Zahl verwendeten Ziffern im Vergleich zum dezimalen Speichern dieser Zahl: N2/N10 ≈ log2(X)/log10(X) ≈ (log10(X)/log10(2))/log10(X) ≈ 1/log10(2) ≈ 3.322
  • Da das Verhältnis zwischen der Anzahl von Binärziffern und der Anzahl von Dezimalziffern einer binär codierten Dezimale 4 beträgt, ergibt dies einen Nutzungsgrad von lediglich 3,322/4 = 0,83. Anders ausgedrückt, ein 32-Bit-System, das theoretisch 4.294.967.295 als eine ganze Binärzahl speichern könnte, kann nun lediglich 99.999.999 als ganze Dezimalzahl speichern, was einer Verringerung hinsichtlich der Höchstzahl um einen Faktor von 40 entspricht.
  • Um diese Unzulänglichkeit zu bewältigen, wurde von Chen und Ho eine Art Hybridalgorithmus entwickelt (siehe Communications of the ACM, Januar 1975, v18/1, Seiten 49 bis 52). Dieser beruht auf der Tatsache, dass 210 = 1024 ≈ 103 (diese Entsprechung liegt natürlich sämtlichen Rechnerspeichergrößen zu Grunde – somit entsprechen 8 kByte in Wirklichkeit 8·1024 Byte und nicht 8000 Byte). Entsprechend nimmt der Chen-Ho-Algorithmus drei Dezimalziffern und codiert diese dann in 10 Binärzeichen. Hierdurch wird eine relative schnelle Wiedergewinnung der Dezimalziffern an jeder beliebigen Speicherstelle ermöglicht, indem die entsprechenden 10 Binärzeichen einfach decodiert werden, während ein hoher (asymptotisch höchster) Speicherwirkungsgrad von 3,322/(10/3) = 99,66% erhalten bleibt.
  • Der Chen-Ho-Algorithmus wird am Besten als ein Abbilden einer dezimal codierten Binärzahl mit 12 Binärzeichen, die 3 jeweils durch 4 Binärzeichen dargestellten Dezimalziffern entspricht, auf eine Binärzahl mit 10 Binärzeichen verstanden. Somit kann die Eingabe für den Algorithmus als (abcd), (efgh), (ijkl) geschrieben werden, wobei jede eingeklammerte Gruppe mit vier Buchstaben der dezimal codierten Binärdarstellung der gleichwertigen Dezimalziffer entspricht. Die 10 Ausgabebinärzeichen können dann als pqrstuvwxy angezeigt werden. Die Einzelheiten bezüglich des Abbildens der Eingabezeichenfolge auf die Ausgabezeichenfolge sind in der untenstehenden Tabelle 1 dargelegt. Tabelle 1
    a e i p q r s t u v w x y
    0 o 0 0 b c d f g h j k l
    l 0 0 l 0 0 d f g h j k l
    0 l 0 l 0 l d b c h j k l
    0 0 l l l 0 d f g h b c l
    0 l l l l l d 0 0 h b c l
    l 0 l l l l d 0 l h f g l
    l l 0 l l l d l 0 h j k l
    l l l l l l d l l h 0 0 l
  • Der Chen-Ho-Algorithmus beruht auf der Betrachtung, dass die Dezimalziffern 0 bis 7 in 3 Binärzeichen codiert werden können; diese Dezimalziffern werden deshalb als "niedrig" angesehen, während die Dezimalziffern 8 und 9 als "hoch" angesehen werden. Wenn eine Dezimalziffer niedrig ist, ist ihr erstes Binärzeichen (bei Darstellung als Binärziffer) Null; wenn sie hoch ist, ist ihr erstes Binärzeichen Eins, aber die nächsten beiden Binärzeichen sind immer Null (da im Dezimalsystem keine Einzelzahlen über 9 benötigt werden). Folglich bestimmt das erste Binärzeichen für jede binär codierte Dezimale, ob die Zahl niedrig (Null) oder hoch (Eins) ist, und ist als Anzeigebinärzeichen bekannt. Für drei Dezimalziffern gibt es insgesamt 23 = 8 Möglichkeiten, was die Werte der drei Anzeigebinärzeichen betrifft, und diese entsprechen den 8 Zeilen in Tabelle 1. Anders ausgedrückt, es hängt von den Werten der Anzeigebinärzeichen ab, welche Zeile der Tabelle zum Ausführen des Abbildens verwendet wird.
  • Wenn alle drei Dezimalziffern niedrig sind (51,2% der Möglichkeiten), was der ersten Zeile in der Tabelle entspricht, wird dies durch eine 0 in der Ausgabestelle p angegeben. Die restlichen 9 Binärzeichen werden dann in drei Dreiergruppen aufgeteilt, die den Wert jeder der Dezimalziffern (die alle in dem Bereich zwischen 0 und 7 liegen müssen, da alle Dezimalziffern niedrig sind) auf gewöhnliche Weise angeben.
  • Wenn nur eine der Dezimalziffern hoch ist (38,4% der Möglichkeiten), wird p auf 1 gesetzt. Die nächsten beiden Binärzeichen (q und r) werden dann auf 00, 01, oder 10 gesetzt, um anzugeben, welche der drei Dezimalziffern hoch ist (die erste, die zweite bzw. die dritte). Die restlichen 7 Binärzeichen werden in zwei Dreiergruppen, um die beiden niedrigen Ziffern zu codieren, plus 1 zusätzliches Binärzeichen zum Codieren der hohen Ziffer aufgeteilt. (Man wird verstehen, dass der tatsächliche Wert durch ein Einzelbinärzeichen dargestellt werden kann, das dem letzten Binärzeichen im binär codierten Digital entspricht – d. h. entsprechend d, h oder l – da es lediglich zwei Möglichkeiten für eine hohe Dezimale gibt, nämlich 8 oder 9).
  • Wenn zwei der Dezimalziffern hoch sind (9,6% der Möglichkeiten), werden p, q und r alle auf 1 gesetzt. Zwei weitere Binärzeichen (t und u) werden dann auf 00, 01, 10 gesetzt, um die Stelle der einen niedrigen Dezimalziffer anzugeben (erste, zweite oder dritte Ziffer). Übrig bleiben die letzten 5 Binärzeichen, von denen 3 Binärzeichen zum Codieren der einen niedrigen Ziffer verwendet werden und jedes der restlichen 2 Binärzeichen einer der beiden hohen Ziffern zugeordnet wird.
  • Schließlich werden p, q, r, t und u alle auf 1 gesetzt, wenn alle drei Dezimalziffern hoch sind (0,8% der Möglichkeiten). Von den restlichen 5 Binärzeichen werden drei zum Codieren je einer der drei hohen Ziffern verwendet, und die restlichen zwei (w und x) werden auf Null gesetzt.
  • Ein entsprechender Decodierungsalgorithmus zur Umwandlung von Chen-Ho zurück in binär codierte Dezimale kann man auf einfache Weise durch Umkehren der Inhalte von Tabelle 1 erhalten, und er ist in ihrem Dokument dargelegt. Man beachte, dass es hierfür notwendig ist, zunächst die für das Codieren verwendete Zeile der Tabelle zu bestimmen. Dies kann man dadurch ermitteln, indem man sich zunächst den Wert des Binärzeichens p ansieht; und falls er 1 beträgt, die Werte der Binärzeichen q und r ansieht; und falls diese ebenfalls 1 betragen, die Werte der Binärzeichen t und u ansieht. Folglich können das Binärzeichen p als Hauptanzeigefeld und q, r, t und u als zweitrangige Anzeigefelder angesehen werden.
  • Chen und Ho merken an, dass ihr Anzeigefeld als eine Form der Huffman-Codierung angesehen werden kann, da es eine variable Länge hat, die für die wahrscheinlichsten Datenwerte am kürzesten ist, wobei unwahrscheinlichere Werte eine immer größere Länge haben. Außerdem werden die Werte des Anzeigefelds sorgfältig ausgewählt, so dass sie immer genau voneinander unterschieden werden können. Insgesamt ist das Chen-Ho-Verfahren jedoch keine Form von Huffman-Komprimierung, da es durch Streichen der unbrauchbaren Binärzeichenkombinationen von binär codierten Dezimalen funktioniert. (Im Gegensatz hierzu ordnet die Huffman-Komprimierung gebräuchlichen Symbolen einen kurzen Code und selteneren Symbolen einen längeren Code zu, um im Hinblick auf die statistische Durchschnittscodelänge einen Gesamtvorteil abzuleiten).
  • Ein wichtiger Vorteil des Chen-Ho-Algorithmus besteht darin, dass es lediglich binäre Verschiebungen, Einfügungen und Löschungen gibt, die auf dem Überprüfen der 3 Anzeigebinärzeichen (a, e und i) beruhen. Außerdem wird man verstehen, dass die Binärzeichenzuordnungen außerhalb der Anzeigefelder so gestaltet wurden, dass sie die Binärzeichenabbildung so weit wie möglich vereinfachen. Folglich werden die Binärzeichen d, h und l (die niedrigstwertigen Binärzeichen in jeder eingegebenen Dezimalziffer) immer direkt auf die Binärzeichen s, v bzw. y abgebildet. Deshalb ist allgemein eine äußerst schnelle, leistungsfähige Realisierung des Codierens mit Hilfe von Hardware möglich.
  • Man beachte, dass nach dem Stand der Technik auch gewisse andere Schemen zum Codieren von 3 Dezimalziffern in 10 Binärziffern bekannt sind. So beschreibt US 3 618 047 ein Codierungssystem, das auf sehr ähnlichen Grundgedanken wie Chen-Ho beruht. Smith hat auch darauf hingewiesen (siehe Communications of the ACM, August 1975, v18/8, Seite 463), dass es möglich wäre, alle drei Dezimalziffern als eine ganze Zahl in dem Bereich von 0 bis 999 zu behandeln und dann in die entsprechenden ganzen Binärzahlen umzuwandeln. Hierdurch wird die Umwandlung von Dezimal- in Binärziffern und umgekehrt konzeptionell äußerst einfach. Die in der Umwandlung von dezimal codierten Binärziffern in komprimierte Binärziffern und wieder zurück beteiligten Arbeitsschritte sind jedoch wesentlich komplexer als die für Chen-Ho benötigten.
  • Die beiden oben erwähnten Dokumente von Chen-Ho und Smith erörtern auch die Möglichkeit des Codierens mit variabler Codewortlänge, oder anders ausgedrückt, N Dezimalziffern werden als eine Binärzeichenfolge mit variabler Länge codiert. Es ist jedoch schwierig, derartige Schemen in gängige Rechnersysteme zu integrieren, und sie werden hier nicht näher erläutert.
  • Ein Nachteil des oben beschriebenen Chen-Ho-Algorithmus besteht darin, dass er lediglich in Bezug auf die Umwandlung von aus drei Dezimalziffern bestehenden Gruppen in 10 Binärzeichen funktioniert. Rechnerarchitekturen sind jedoch beinahe ausschließlich auf Zweierpotenzen ausgelegt (16-Bit, 32-Bit, 64-Bit), und folglich sind diese Größen in Wirklichkeit nicht direkt durch 10 teilbar. Eine einfache Anwendung des oben beschriebenen Chen-Ho-Algorithmus würde schlichtweg jegliche restliche Binärzeichen verschwenden. In einem 64-Bit-System könnten lediglich 6·3 = 18 Dezimalziffern unter Verwendung von 60 der 64 verfügbaren Binärzeichen gespeichert werden. Während dies im Vergleich zu den mit binär codierten Dezimalen erreichbaren 16 Dezimalziffern selbstverständlich eine Verbesserung darstellt, ging der praktische Speichernutzungsgrad hier auf 3,322/(64/18) ≈ 0,93 zurück, was erheblich unter dem theoretischen Höchstwert liegt.
  • Tatsächlich beschreiben sowohl Chen-Ho (in demselben Dokument wie oben verwiesen) und US 3 618 047 ebenfalls einen Algorithmus zum Codieren von 2 Dezimalziffern in 7 Binärzeichen, das auf derselben Grundlage wie der 3-zu-10-Algorithmus beruht (Aufteilung gemäß hohen/niedrigen Dezimalen). Des Weiteren wird in US 3 618 047 ein Kombinieren des 3- und 2-Zifferalgorithmus erwogen, und es wird vorgeschlagen, dass 11 Dezimalziffern in 3 Gruppen mit 3 Ziffern und 1 Gruppe mit 2 Ziffern aufgeteilt werden könnten.
  • Als weiteres Beispiel könnte ein Speicherplatz mit 64-Binärzeichen in (5·10) + (2·7) aufgeteilt werden, um ein Codieren von 19 Dezimalziffern zu ermöglichen; man könnte dieselbe Anzahl von Dezimalziffern auch durch Aufteilen des Speicherplatzes mit 64-Binärzeichen in (6·10) + (1·4) erreichen, wobei die Codierung mit 4-Binärzeichen eine einfache Standard-Binär-Dezimal-Codierung ist. Tatsächlich ist 19 die größtmögliche Anzahl von vollständigen Dezimalziffern, die in 64 Binärzeichen codiert werden können (da 64·log10(2) = 19,27 – d. h. weniger als 20), und somit sind beide dieser Ansätze theoretisch optimal.
  • Ein derartiges Kombinieren verschiedener Codierungs-(und Decodierungs-)Muster geht jedoch zu Lasten der Einfachheit, die eine der anfänglichen Hauptanziehungspunkte des Chen-Ho-Algorithmus war.
  • Entsprechend stellt die vorliegende Erfindung ein Verfahren zur Umwandlung von Dezimalziffern in Binärziffern bereit, wobei das Verfahren die folgenden Schritte umfasst: Empfangen von einer, zwei oder drei Dezimalziffern;
    Codieren der Dezimalziffern in zehn Binärzeichen unter Verwendung eines Codierungsschemas derart, dass die ersten sechs Binärzeichen mit Nullen aufgefüllt werden, wenn es eine Dezimalziffer gibt, und die ersten drei Binärzeichen mit Nullen aufgefüllt werden, wenn es zwei Dezimalziffern gibt, und kein Auffüllen mit Nullen durchgeführt wird, wenn es drei Dezimalziffern gibt; und
    Ausgeben der zehn Binärzeichen.
  • Das Anwenden des obigen Codierungsschemas gestattet die Verwendung eines einzelnen leistungsfähigen Schemas zum Codieren einer beliebigen Anzahl von Dezimalziffern. Dasselbe Schema kann auch zum automatischen Codieren von einer, zwei oder drei Dezimalziffern verwendet werden, wobei größere Zahlen von Dezimalziffern in Dreiergruppen (plus einem oder zwei Restgliedern) aufgeteilt werden. Man beachte, dass die empfangenen Dezimalziffern typischerweise in der Form von binär codierten Dezimalzahlen vorliegen.
  • In einer bevorzugten Ausführungsform können bei Empfang von weniger als drei Dezimalziffern diese mit Nullen aufgefüllt werden, um eine einheitliche Eingabegröße mit drei Ziffern bereitzustellen (bzw. zwölf Binärzeichen, falls eine binär codierte Dezimaleingabe verwendet wird). Dies ist besonders dann hilfreich, wenn das Codieren in fester Hardware ausgeführt wird; im Gegensatz dazu kann ein derartiges Auffüllen nicht notwendig sein, falls das Codieren mit Software zum Beispiel mit Hilfe einer Verweistabelle ausgeführt wird.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung enthalten die ausgegebenen zehn Binärzeichen ein Hauptanzeigefeld. Im Gegensatz zu Systemen nach dem Stand der Technik wie Chen-Ho befindet sich dieses Hauptanzeigefeld nicht an vorderster Stelle der zehn Binärzeichen (d. h. in dem höchstwertigen Binärzeichenwert), sondern es befindet sich stattdessen innerhalb der Binärzeichenfolge. In der unten beschriebenen bevorzugten Ausführung ist das Hauptanzeigefeld das siebte Binärzeichen in der Folge von zehn Binärzeichen (man beachte, dass dies bedeutet, dass es sich außerhalb der Reihe von Binärzeichenstellen befindet, die Null werden müssen, falls lediglich eine oder zwei Dezimalziffern codiert werden).
  • Der Zweck des Hauptanzeigefelds besteht darin, anzuzeigen, ob die drei Dezimalziffern alle niedrig sind, wobei eine Dezimalziffer als niedrig erachtet wird, wenn sie in dem Bereich von 0 bis 7 liegt, und als hoch, wenn sie 8 oder 9 beträgt (analog zu Chen-Ho).
  • Wenn die drei Dezimalziffern nicht alle niedrig sind, ist in den zehn Binärzeichen ein zweitrangiges Anzeigefeld mit zwei Binärzeichen enthalten. Dieses Feld weist einen ersten Wert auf, um anzuzeigen, dass mehr als eine der Dezimalziffern hoch ist, und einen zweiten, dritten und vierten Wert, um anzuzeigen, welche der drei Dezimalziffern hoch ist, wenn lediglich eine der Dezimalziffern hoch ist. In der bevorzugten Ausführungsform umfassen die beiden Binärzeichen der zweitrangigen Anzeige das achte und das neunte Binärzeichen der zehn Binärzeichen (wiederum außerhalb der Reihe von Binärzeichenstellen, die Null werden müssen, falls lediglich eine oder zwei Dezimalziffern codiert werden).
  • Wenn zwei oder mehr der Dezimalziffern hoch sind, wird in den zehn Ausgabebinärzeichen ein drittrangiges Anzeigefeld mit zwei weiteren Binärzeichen bereitgestellt. Dieses Feld weist einen ersten Wert auf, um anzuzeigen, dass alle drei der Dezimalziffern hoch sind, und einen zweiten, dritten und vierten Wert, um anzuzeigen, welche der drei Dezimalziffern niedrig ist, wenn lediglich eine der Dezimalziffern niedrig ist. In der bevorzugten Ausführungsform umfassen die beiden Binärzeichen der drittrangigen Anzeige das vierte und fünfte Binärzeichen der zehn Binärzeichen.
  • Die Erfindung stellt ferner ein Verfahren zur Umwandlung von Binärziffern in Dezimalziffern bereit (d. h. die Umwandlung in der umgekehrten Richtung als die oben ausgeführte). Dies beinhaltet die Schritte des: Empfangens von zehn Binärzeichen; des Decodierens der zehn Binärzeichen in drei Dezimalziffern durch Ausführen des oben beschriebenen Codierens in umgekehrter Reihenfolge; und des Ausgebens der drei Dezimalziffern. Der erste logische Schritt des Decodierens besteht vorzugsweise darin, den Wert eines Anzeigefelds (des Hauptanzeigefelds) zu untersuchen. Typischerweise werden die drei Dezimalziffern in Form von binär codierten Dezimalen ausgegeben (wiederum ist dies bei Hardware-Ausführungen besonders wahrscheinlich).
  • Die Erfindung stellt weiterhin ein Rechnerprogramm zum Ausführen der oben beschriebenen Verfahren bereit. Ein derartiges Programm kann als Rechnerprogrammprodukt geliefert werden, das eine Reihe von Programmanweisungen darstellt, die auf einen maschinenlesbaren Datenträger wie eine CD-ROM, DVD oder Diskette codiert sind. Die Anweisungen werden dann in den Rechner oder eine andere Zentralrechnereinheit ("host device") geladen, indem von dem Datenträger gelesen wird, wodurch die Zentralrechnereinheit die Verarbeitung des Verfahrens ausführt. Man beachte, dass derartige Anweisungen auch vorab in einen Rechner (z. B. codiert auf einem Festspeicher (ROM)) geladen werden können oder über ein Netzwerk wie das Internet, über ein lokales Netzwerk (LAN), eine drahtlose Verbindung oder jede andere geeignete Verbindungsform heruntergeladen werden können.
  • Entsprechend dem Codierungsverfahren der Erfindung wird ferner ein System zur Umwandlung von Dezimalziffern in Binärziffern gemäß Anspruch 20 bereitgestellt.
  • Entsprechend dem Decodierungsverfahren der Erfindung wird ferner ein System zur Umwandlung von Binärziffern in Dezimalziffern gemäß Anspruch 21 bereitgestellt.
  • Nun wird eine bevorzugte Ausführungsform der Erfindung lediglich beispielhaft ausführlich beschrieben.
  • Das Codierungsschema der vorliegenden Erfindung beruht auf den in Tabelle 2 dargelegten Binärzeichenabbildungen. Die Darstellung hier gleicht der in Tabelle 1 verwendeten dahingehend, dass angenommen wird, dass drei binär codierte Dezimalziffern (abcd), (efgh), (ijkl) in eine Ausgabezeichenfolge mit zehn Bits (pqrstuvwxy) codiert werden. Tabelle 2
    a e i p q r s t u v w x y
    0 0 0 b c d f g h 0 j k l
    0 0 l b c d f g h l 0 0 l
    0 l 0 b c d j k h l 0 l l
    l o 0 j k d f g h l l 0 l
    l l 0 j k d o 0 h l l l l
    l 0 l f g d 0 l h l l l l
    0 l l b c d l 0 h l l l l
    l l l 0 0 d l i h l l l l
  • In dem Codierungsschema aus Tabelle 1 wird die Komprimierung von einer oder zwei Dezimalziffern in 4 bzw. 7 Binärzeichen als rechtsbündige Teilmenge der 3-Ziffercodierung erreicht. Hierdurch wird es möglich, dass eine beliebige Anzahl von Dezimalziffern wirksam codiert wird. Kurze Dezimalzahlen können durch Auffüllen mit Nullbinärzeichen einfach in ein längeres Feld dekomprimiert werden.
  • 38 Dezimalziffern können zum Beispiel in 128 Binärzeichen (38 = 12·3 + 1·2, was 127 Binärzeichen entspricht und ein Binärzeichen für ein Vorzeichen übrig lässt) codiert werden. In einer bevorzugten Ausführungsform werden Dezimalzahlen mit 33 Ziffern plus Hochzahl unter Verwendung des Codierens gemäß der vorliegenden Erfindung in einem Feld mit 128-Binärzeichen gespeichert (NB: einige Sprachen wie COBOL erfordern ausdrücklich eine 32-Ziffern-Arithmetik, und somit ist die Fähigkeit, dass diese in Register mit 128 Binärzeichen passen, besonders nützlich).
  • Man wird verstehen, dass es viele Abwandlungen der Binärzeichenabbildungen nach Tabelle 2 gibt, bei denen diese Eigenschaften aufrechterhalten bleiben. Es sollen drei Hauptkategorien betrachtet werden:
    • (a) überflüssige Binärzeichen: in Anbetracht der Tatsache, dass 10 Binärzeichen 1024 darstellen können und man für die 3 Dezimalziffern lediglich 1000 Möglichkeiten benötigt, sind einige Binärkombinationen tatsächlich überflüssig und somit austauschbar. In der letzten Reihe der Tabelle wurden die Werte der Binärzeichen a und b zum Beispiel willkürlich auf Null gesetzt, wobei sie aber jeden beliebigen Wert haben könnten, ohne den Code zu beeinflussen (man beachte, dass man hier keine führenden Nullen benötigt, da sich die letzte Reihe lediglich auf Situationen bezieht, in denen alle drei Dezimalziffern hoch sind, d. h. 8 oder 9).
    • (b) Binärzeichenumkehrungen: es ist zweifellos möglich, einige Binärzeichenabbildungen umzukehren – zum Beispiel könnte das Binärzeichen y an Stelle eines direkten Abbildens entweder durchgängig oder lediglich für ausgewählte Reihen das Inverse des Bit 1 sein. Gleichermaßen könnten einige Elemente der Anzeigefelder ebenso im Vergleich zu den gezeigten Werten durchgängig umgekehrt werden wie zum Beispiel das Hauptanzeigefeld (v) oder die zweitrangigen Anzeigebinärzeichen w und x (diese müssten als Paar umgekehrt werden). Man beachte, dass die Werte der Binärzeichen v, w und x niemals ein Teil von führenden Nullen sind, wenn weniger als drei Dezimalwerte abgebildet werden, da sie alle innerhalb der letzten vier Stellen liegen.
    • (c) Binärzeichen-Neuanordnungen: man betrachte die erste Zeile der Tabelle – es wäre zweifellos möglich, die Binärzeichen j, k und l in jedem beliebigen der Binärzeichen w, x und y zu speichern, ohne die führenden Nullen bei weniger als drei Dezimalziffern zu beeinträchtigen (z. B. wenn j, k und l als Binärzeichen x, w bzw. y abgebildet werden). Tatsächlich könnten auch komplexere Binärzeichenabbildungen, die irgendeine Kombinationslogik verwenden, eingesetzt werden.
  • Man wird folglich erkennen, dass der Fachmann ausgehend von den obigen Grundgedanken und durch mögliches Kombinieren der verschiedenen Variationskategorien oder durch Anwenden anderer Grundgedanken eine Vielfalt von anderen Abbildungen aus Tabelle 2 entwickeln kann, die die Fähigkeit aufweisen, eine, zwei oder mehrere Dezimalziffern gleichzeitig zu handhaben. Anders ausgedrückt, das bestimmte in Tabelle 2 gezeigte Codierungsschema ist nicht einmalig, sondern veranschaulicht lediglich die Erfindung.
  • Trotzdem wird die Abbildung aus Tabelle 2 in der bevorzugten Ausführungsform angewendet, da sie zwei zusätzliche Vorteile hat. Erstens sind die Binärzeichenabbildungen relativ einfach (z. B. wird l immer direkt auf y abgebildet), wodurch die Komplexität und die Kosten der Hardware verringert werden. Zweitens werden alle Zahlen von 0 bis 79, die lediglich die ersten beiden Zeilen der Tabelle 2 anwenden, tatsächlich direkt von ihrem binär codierten Dezimalwert abgebildet, indem die führenden Nullen einfach so weggelassen werden, dass sich die zwölf Binärzeichen auf zehn verringern (im Gegensatz dazu stellt Chen-Ho eine derartige direkte Abbildung lediglich für Zahlen bis 5 bereit). Folglich können Umwandlungen von kleinen Zahlen (die tendenziell äußerst gebräuchlich sind) besonders einfach ausgeführt werden.
  • Das entsprechende Decodierungsschema zum Abbilden von der Codierung aus Tabelle 2 zurück auf binär codierte Dezimale ist in der untenstehenden Tabelle 3 gezeigt (wobei "." für „beliebig" steht): Tabelle 3
    v w x s t a b c d e f g h i j k l
    0 . . . . 0 p q r 0 s t u 0 w x y
    l 0 0 . . 0 p q r 0 s t u l 0 0 y
    l 0 l . . 0 p q r l 0 0 u 0 s t y
    l l 0 . . l 0 0 r 0 s t u 0 p q y
    l l l 0 0 l 0 0 r l 0 0 u 0 p q y
    l l l 0 l l 0 0 r 0 p q u l 0 0 y
    l l l l 0 0 p q r l 0 0 u l 0 0 y
    l l l l l l 0 o r l 0 0 u l 0 0 y
  • Die logischen Verknüpfungen zum Ableiten der Ausgabebinärzeichen gemäß der obigen Abbildung aus Tabelle 2 können wie folgt ausgedrückt werden (mit "&" = UND, "|" = ODER, und "\" = NICHT):
    p = (b&\a)|(j&a&\i)|(f&a&\e&i)
    q = (c&\a)|(k&a&\i)|(g&a&\e&i)
    r = d
    s = (f&\e&\(a&i))|(j&(\a&e&\i))|(e&i)
    t = (g&\e&\(a&i))|(k&(\&e&\i))|(a&i)
    u = h
    v = a|e|i
    w = a|(e&i)|(j&\e&\i)
    x = e|(a&i)|(k&\a&\i)
    y = l
  • Die Decodierungsschritte zur Rückumwandlung von den 10 Binärzeichen (pqrstuvwxy) in gewöhnliche binär codierte Dezimale (abcd), (efgh), (ijkl) – d. h. die Abbildung aus Tabelle 3 – können wie folgt ausgeführt werden.
    a = (v&w)&(\x|\s(s&t))
    b = p&(\v|\w(v&w&x&s&\t)
    c = q&(\v|\w(v&w&x&s&\t))
    d = r
    e = v&((\w&x)|(w&x&(s|\t)))
    f = (s&(\v|(v&\x)))|(p&v&w&x&\s&t)
    g = (t&(\|(v&\x)))|(q&v&w&x&\s&t)
    h = u
    i = v&((\w&\x)|(w&x&(s|t)))
    j = (w&\v)|(s&v&\w&x)|(p&v&w&(\x|(\s&\t)))
    k = (x&\v)|(t&v&\w&x)|(q&v&w&(\x|(\s&\t)))
    l = y
  • Man wird verstehen, dass diese Ausdrücke zum Codieren und Decodieren unter Verwendung gewöhnlicher Boole'schen Techniken in verschiedene logische Entsprechungen abgewandelt werden können. Man wird ebenfalls erkennen, dass die Ausdrucke in Wirklichkeit einen Hardware-Codierer bzw. -Decodierer festlegen, der entsprechende Gatter umfasst, die wie festgelegt miteinander und mit Eingängen/Ausgängen verbunden sind. Bei einer Realisierung auf der Grundlage von Software kann es schneller sein, aus obigen Abbildungen eine Verweistabelle (z. B. eine Hash-Tabelle) zu erzeugen. Man beachte, dass diese Verweistabelle zweifellos eine direkte Dezimal-Binär-Codierung anwenden könnte (d. h. ohne eine binär codierte Dezimale als Zwischenschritt zu verwenden). Grundsätzlich könnte man ebenso Hardware entwerfen, um dies durchzuführen, obwohl dies in Anbetracht der Komplexität der Entwicklung von Hardware zur direkten Verarbeitung von Dezimalzahlen gegebenenfalls nicht lohnend ist (anders ausgedrückt, die Zwischenumwandlung in binär codierte Dezimale ist allgemein vorteilhaft für Realisierungen mit Hardware). Man wird ebenfalls verstehen, dass je nach Umstand kombinierte Software/Hardware-Realisierungen wünschenswert sein können, zum Beispiel eine Software-Umwandlung von Dezimalen in binär codierte Dezimale, gefolgt von einer Hardwareumwandlung gemäß der in Tabelle 2 ausführlich dargelegten Komprimierung.
  • Ein Beispiel der Anwendung der vorliegenden Erfindung wäre in einer Datenbank, wobei sie so aufgebaut sein könnte, dass sie Dezimalziffern in deren echter Form belässt (insbesondere, wenn man bedenkt, dass diese manchmal an Stelle von einfachen numerischen Mengenangaben Kontonummern usw. darstellen können). Hier könnte das Codieren dazu verwendet werden, um Daten wirksam zu speichern (d. h., so wenig Speicherplatz wie möglich zu verwenden), während ihre dezimale Eigenschaft aufrechterhalten wird. Unter diesen Umständen wird das Codieren ausgeführt, wenn die Datenbank eine Datendatei zum Speichern ausgibt, und das Decodieren wird ausgeführt, wenn die Datenbank für die Verarbeitung in einer gespeicherten Datendatei liest.
  • Das Decodieren für die Verarbeitung kann entweder durch Software, z. B. durch eine Bibliothek mit C-Routinen, ausgeführt werden oder durch eine geeignete Hardwarestruktur. Typischerweise würden die Zahlen nach der Verarbeitung, wie hierin beschrieben, zum nachfolgenden Speichern neu codiert werden. Wenn Hardware verwendet wird, würde die decodierte Zahl lediglich allgemein für den spezifischen durchzuführenden Rechenvorgang benötigt werden. Anders ausgedrückt, die komprimierte Form aus einem Speicher würde in ein Register eingelesen und muss nur für den entsprechenden Rechenvorgang (z. B. "addieren") decodiert werden; das Ergebnis dieses Vorgangs kann dann als Teil des Schreibens des Ergebnisses zurück in ein Register neu codiert werden.
  • Ein weiteres Beispiel der Anwendung der vorliegenden Erfindung besteht im Bereitstellen eines maschinenunabhängigen Codierens von Dezimalzahlen. Dies kann dann zum Übertragen derartiger Zahlen zwischen Maschinen verwendet werden. Eine in gewisser Weise ähnliche Anwendung wäre im Internet oder World Wide Web, wo es wünschenswert ist, die Verarbeitung auf einer Vielfalt von Client-Vorrichtungen auszuführen. Ein Beispiel hier wäre das Verarbeiten von Dezimalzahlen im XML-Format, die als Teil von HTML-Seiten enthalten sind.
  • Man beachte, dass man das Codierungsschema der Erfindung auf einen sehr großen Bereich von Einheiten anwenden kann. Dazu gehören nicht nur Rechner, die größenmäßig von Palmtops bis zu Arbeitsplatzrechnern ("personal computers"), Arbeitsplatzsystemen ("workstations"), Servern und Großrechnern ("mainframes") reichen, sondern auch andere Vorrichtungen (typischerweise auf der Grundlage von Mikroprozessoren oder DSPs), die möglicherweise Dezimalrechenoperationen wie zum Beispiel Verkaufsdatenstationen ("point of sale terminals"), Automobilnavigationssysteme, elektronische Assistenten ("personal digital assistants") und so weiter ausführen sollen. Man beachte ebenfalls, dass es einige spezialisierte Einheiten oder Anwendungen (insbesondere zur Dateneingabe oder -ausgabe) geben kann, die entweder das Codieren oder das Decodieren gemäß der vorliegenden Erfindung ausführen, nicht jedoch beides.
  • Zusammengefasst hat das hierin beschriebene Codierungsschema somit einen großen Anwendungsbereich und kann in Hardware, Software oder einer Kombination aus beidem realisiert werden. Ein bevorzugtes Format für die Codierung ist in Tabelle 2 dargelegt, aber man wird verstehen, dass dies lediglich als Beispiel dient. Dem Fachmann werden diverse Änderungen der oben beschriebenen, genauen Ausführungen bekannt sein, die innerhalb des Umfangs der Erfindung, die in den beigefügten Ansprüchen definiert ist, fallen.

Claims (21)

  1. Verfahren zur Umwandlung von Dezimalziffern in Binärziffern, wobei das Verfahren die folgenden Schritte umfasst: Empfangen von einer, zwei oder drei Dezimalziffern; Codieren der Dezimalziffern in zehn Binärzeichen unter Verwendung eines Codierungsschemas derart, dass die ersten sechs Binärzeichen mit Nullen aufgefüllt werden, wenn es eine Dezimalziffer gibt, und die ersten drei Binärzeichen mit Nullen aufgefüllt werden, wenn es zwei Dezimalziffern gibt, und kein Auffüllen mit Nullen durchgeführt wird, wenn es drei Dezimalziffern gibt; und Ausgeben der zehn Binärzeichen.
  2. verfahren nach Anspruch 1, das ferner die folgenden Schritte umfasst: Auffüllen der empfangenen Dezimalziffern mit zwei Nullen, wenn eine Dezimalziffer empfangen wird, vor dem Codierungsschritt; und Auffüllen der empfangenen Dezimalziffern mit einer Null, wenn zwei Dezimalziffern empfangen werden, vor dem Codierungsschritt.
  3. Verfahren nach Anspruch 1 oder 2, bei dem die ausgegebenen zehn Binärzeichen ein Hauptanzeigefeld enthalten, wobei das Hauptanzeigefeld nicht das erste der zehn Binärzeichen ist.
  4. Verfahren nach Anspruch 3, bei dem das Hauptanzeigefeld nicht das letzte der zehn Binärzeichen ist.
  5. Verfahren nach Anspruch 4, bei dem das Hauptanzeigefeld das siebte der zehn Binärzeichen umfasst.
  6. Verfahren nach einem der Ansprüche 3 bis 5, bei dem das Hauptanzeigefeld anzeigt, ob die drei Dezimalziffern alle niedrig sind.
  7. Verfahren nach Anspruch 6, bei dem eine Dezimalziffer als niedrig erachtet wird, wenn sie in dem Bereich von 0 bis 7 liegt, und als hoch, wenn sie 8 oder 9 beträgt.
  8. Verfahren nach Anspruch 7, bei dem die zehn Binärzeichen ein zweitrangiges Anzeigefeld enthalten, wenn nicht alle drei Dezimalziffern niedrig sind.
  9. Verfahren nach Anspruch 8, bei dem das zweitrangige Anzeigefeld zwei Binärzeichen umfasst.
  10. Verfahren gemäß Anspruch 9, bei dem das zweitrangige Anzeigefeld einen ersten Wert aufweist, um anzuzeigen, dass mehr als eine der Dezimalziffern hoch ist, und einen zweiten, dritten und vierten Wert aufweist, um anzuzeigen, welche der drei Dezimalziffern hoch ist, wenn lediglich eine der Dezimalziffern hoch ist.
  11. Verfahren nach Anspruch 8 oder 9, bei dem die beiden Binärzeichen der zweitrangigen Anzeige das achte und das neunte Binärzeichen der zehn Binärzeichen umfassen.
  12. Verfahren nach einem der Ansprüche 8 bis 11, bei dem die zehn Binärzeichen ein drittrangiges Anzeigefeld enthalten, wenn zwei oder mehr der Dezimalziffern hoch sind.
  13. Verfahren nach Anspruch 12, bei dem das drittrangige Anzeigefeld zwei Binärzeichen umfasst.
  14. Verfahren nach Anspruch 13, bei dem das drittrangige Anzeigefeld einen ersten Wert aufweist, um anzuzeigen, dass alle der Dezimalziffern hoch sind, und einen zweiten, dritten und vierten Wert aufweist, um anzuzeigen, welche der drei Dezimalziffern niedrig ist, wenn lediglich eine der Dezimalziffern niedrig ist.
  15. verfahren nach Anspruch 13 oder 14, bei dem die beiden Binärzeichen der drittrangigen Anzeige das vierte und fünfte Binärzeichen der zehn Binärzeichen umfassen.
  16. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die zehn Binärzeichen der Binär-Dezimal-Codierung der Dezimalziffern für alle Dezimalzahlen in dem Bereich von 0 bis 79 entsprechen.
  17. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die empfangenen Dezimalziffern in der Form von binär codierten Dezimalzahlen vorliegen.
  18. Verfahren zur Umwandlung von Binärziffern in Dezimalziffern, wobei das Verfahren die folgenden Schritte umfasst: Empfangen von zehn Binärzeichen; Decodieren der zehn Binärzeichen in drei Dezimalziffern durch Ausführen des Codierungsschritts nach einem der vorhergehenden Ansprüche in umgekehrter Reihenfolge; und Ausgeben der drei Dezimalziffern.
  19. Rechnerprogrammprodukt mit einem darin gespeicherten Rechnerprogramm, wobei das Rechnerprogramm Anweisungen umfasst, die den Schritten des Verfahrens nach einem der vorhergehenden Ansprüche entsprechen, und wobei das Rechnerprogramm, durch einen Rechner ausgeführt wird, wenn es in den internen Speicher des Rechners geladen ist, und diesen anweist, die Schritte des Verfahrens gemäß den Anweisungen auszuführen.
  20. System zur Umwandlung von Dezimalziffern in Binärziffern, wobei das System umfasst: ein Mittel zum Empfangen von einer, zwei oder drei Dezimalziffern; ein Mittel zum Codieren der Dezimalziffern in zehn Binärzeichen unter Verwendung eines Codierungsschemas derart, dass die ersten sechs Binärzeichen mit Nullen aufgefüllt werden, wenn es eine Dezimalziffer gibt, und die ersten drei Binärzeichen mit Nullen aufgefüllt werden, wenn es zwei Dezimalziffern gibt; und kein Auffüllen mit Nullen durchgeführt wird, wenn es drei Dezimalziffern gibt, und ein Mittel zum Ausgeben der zehn Binärzeichen.
  21. System zur Umwandlung von Binärziffern in Dezimalziffern, wobei das System umfasst: ein Mittel zum Empfangen von zehn Binärzeichen; ein Mittel zum Decodieren der zehn Binärzeichen in drei Dezimalziffern, wobei das Mittel zum Decodieren den Codierungsschritt nach einem der Ansprüche 1 bis 17 in umgekehrter Reihenfolge durchführt; und ein Mittel zum Ausgeben der drei Dezimalziffern.
DE60131247T 2001-01-27 2001-09-24 Dezimal-Binär Kodierer/Dekodierer Expired - Lifetime DE60131247T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0102154.2A GB0102154D0 (en) 2001-01-27 2001-01-27 Decimal to binary coder/decoder
GB0102154 2001-01-27

Publications (2)

Publication Number Publication Date
DE60131247D1 DE60131247D1 (de) 2007-12-20
DE60131247T2 true DE60131247T2 (de) 2008-08-28

Family

ID=9907638

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60131247T Expired - Lifetime DE60131247T2 (de) 2001-01-27 2001-09-24 Dezimal-Binär Kodierer/Dekodierer

Country Status (6)

Country Link
US (2) US6437715B1 (de)
EP (1) EP1231716B1 (de)
JP (1) JP3588349B2 (de)
AT (1) ATE377867T1 (de)
DE (1) DE60131247T2 (de)
GB (1) GB0102154D0 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587070B2 (en) * 2001-04-03 2003-07-01 Raytheon Company Digital base-10 logarithm converter
ATE316691T1 (de) 2002-04-19 2006-02-15 Xsil Technology Ltd Laser-behandlung
US6707652B2 (en) * 2002-07-10 2004-03-16 Eaton Corporation Electrical switching apparatus including glowing contact protection
US7523150B2 (en) 2004-10-28 2009-04-21 Hewlett-Packard Development Company, L.P. Binary representation of number based on processor word size
US7644115B2 (en) * 2005-01-07 2010-01-05 Sas Institute Inc. System and methods for large-radix computer processing
US7471385B2 (en) * 2005-01-13 2008-12-30 Xerox Corporation Systems and methods for selecting a reference database for determining a spectrum of an object based on fluorescence of the object
US8131709B2 (en) 2005-01-14 2012-03-06 International Business Machines Corporation Mechanism for providing efficient access to redundant number representations
US7660838B2 (en) * 2005-02-09 2010-02-09 International Business Machines Corporation System and method for performing decimal to binary conversion
US20060179098A1 (en) * 2005-02-09 2006-08-10 International Business Machines Corporation System and method for reduction of leading zero detect for decimal floating point numbers
US20060179090A1 (en) * 2005-02-09 2006-08-10 International Business Machines Corporation System and method for converting binary to decimal
US7685214B2 (en) * 2005-08-26 2010-03-23 International Business Machines Corporation Order-preserving encoding formats of floating-point decimal numbers for efficient value comparison
US8364734B2 (en) * 2005-09-15 2013-01-29 International Business Machines Corporation Converting from decimal floating point into scaled binary coded decimal
US7698352B2 (en) * 2005-09-15 2010-04-13 International Business Machines Corporation System and method for converting from scaled binary coded decimal into decimal floating point
US20080270495A1 (en) * 2007-04-26 2008-10-30 International Business Machines Corporation Insert/extract biased exponent of decimal floating point data
US8051117B2 (en) * 2007-04-26 2011-11-01 International Business Machines Corporation Shift significand of decimal floating point data
US8051118B2 (en) * 2007-04-26 2011-11-01 International Business Machines Corporation Composition of decimal floating point data
US8190664B2 (en) * 2007-04-26 2012-05-29 International Business Machines Corporation Employing a mask field of an instruction to encode a sign of a result of the instruction
US9710227B2 (en) 2012-09-15 2017-07-18 John W. Ogilvie Formatting floating point numbers
US9143159B2 (en) 2012-10-04 2015-09-22 Silminds, Inc. DPD/BCD to BID converters
US9134958B2 (en) 2012-10-22 2015-09-15 Silminds, Inc. Bid to BCD/DPD converters
CN103236844B (zh) * 2013-03-26 2016-06-01 合肥工业大学 一种电子标签编码压缩方法
AU2017210160A1 (en) 2016-01-18 2018-08-02 Waveshift Llc Evaluating and reducing myopiagenic effects of electronic displays

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB777244A (en) * 1953-01-30 1957-06-19 British Tabulating Mach Co Ltd Improvements in or relating to apparatus for translating a number from a first to a second notation
US3618047A (en) * 1969-12-15 1971-11-02 North American Rockwell System for the compact storage of decimal numbers
US3842414A (en) * 1973-06-18 1974-10-15 Ibm Binary coded decimal conversion apparatus
JPH0644714B2 (ja) * 1985-02-16 1994-06-08 ソニー株式会社 コ−ド変換装置
US4972187A (en) * 1989-06-27 1990-11-20 Digital Equipment Corporation Numeric encoding method and apparatus for neural networks
JP3155499B2 (ja) * 1997-11-26 2001-04-09 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 光ディスクのビット変換の方法、復調方法および装置
US6011873A (en) * 1998-04-29 2000-01-04 Penware, Inc. Method and apparatus for lossless compression of signature data
US6124811A (en) * 1998-07-02 2000-09-26 Intel Corporation Real time algorithms and architectures for coding images compressed by DWT-based techniques
US6166664A (en) * 1998-08-26 2000-12-26 Intel Corporation Efficient data structure for entropy encoding used in a DWT-based high performance image compression

Also Published As

Publication number Publication date
JP2002305450A (ja) 2002-10-18
GB0102154D0 (en) 2001-03-14
EP1231716A3 (de) 2004-01-14
EP1231716A2 (de) 2002-08-14
DE60131247D1 (de) 2007-12-20
ATE377867T1 (de) 2007-11-15
EP1231716B1 (de) 2007-11-07
US6437715B1 (en) 2002-08-20
JP3588349B2 (ja) 2004-11-10
US6525679B1 (en) 2003-02-25

Similar Documents

Publication Publication Date Title
DE60131247T2 (de) Dezimal-Binär Kodierer/Dekodierer
DE10301362B4 (de) Blockdatenkompressionssystem, bestehend aus einer Kompressionseinrichtung und einer Dekompressionseinrichtung, und Verfahren zur schnellen Blockdatenkompression mit Multi-Byte-Suche
DE69821408T2 (de) Multiplikationsverfahren und -vorrichtung
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE112012005557B4 (de) Erzeugen eines Code-Alphabets von Symbolen zum Erzeugen von Codewörtern für Wörter, die mit einem Programm verwendet werden
DE2630304A1 (de) Einrichtung zur ueberpruefung der gueltigkeit von alphabetischen eingangszeichen
DE19742417A1 (de) Vorrichtung und Verfahren zur Durchführung von M-fachem Maschinenendzustands-Entropiekodieren bzw. Entropiekodieren mit einer Maschine mit finitem Zustand
DE2231458A1 (de) Digitaler frequenzzusammensetzer
DE112004001648T5 (de) Verfahren, Vorrichtung und Befehle für parallele Datenumwandlung
DE2262070A1 (de) Mit schieberegistern arbeitendes fehlerkorrektursystem
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
EP0077089B1 (de) Anordnung zum Speichern oder Übertragen von transformationskodierten Bildsignalen und zum Rückgewinnen dieser Bildsignale
DE102020134280A1 (de) Vorrichtung und verfahren zur effizienten gleitkomma-komprimierung
DE2217935B2 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern in einer Nachricht
DE2232222A1 (de) Funktionsgeneratormodul
DE3144563C2 (de)
EP0628183B1 (de) Schaltungsanordnung zum digitalen multiplizieren von integer-zahlen
DE60109344T2 (de) Hochgeschwindigkeitscodierer für Faltungscodes
EP1342153B1 (de) Verfahren und vorrichtung zum erzeugen einer pseudozufallsfolge mittels diskretem logarithmus
DE102020110787B3 (de) Schaltung und verfahren zum kodieren oder dekodieren eines datenworts
DE19963687B4 (de) Modulations-Codierer und -Decodierer
WO2002017063A2 (de) Programmkopplungsmethode
DE2039228A1 (de) Verfahren und Vorrichtung zum Konvertieren und Stellenwert-Verschieben von Zahlsignalen unterschiedlicher Codes in einer Datenverarbeitungsanlage
EP1924931B1 (de) Verfahren zur speichereffizienten durchführung einer burrows-wheeler-rücktransformation
DE60311886T2 (de) Verfahren und vorrichtung zum sortieren zyklischer daten in lexikographischer reihenfolge

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)