negative BCD-Zahlen

Gast #759788
Hi,
kann mir jemand von Euch erklären wie eine negative BCD-Zahl aussieht!?
bei binär-zahlen gibt es ja die Möglichkeit das höchste Bit zu setzen 
oder das Komplement der Zahl zu berechnen - beides ist Möglich.

Bei der BCD-Zahl ergibt für mich das bilden des 2er-Komplements keinen 
Sinn da aus den Zahlen 0-5 nachher a-f wird, und dann wäre es ja keine 
BCD- sondern eine binär Zahl!? - daher gehe ich davon aus, dass bei 
negativen BCD-Zahlen nur das MSB gesetzt wird, richtig?
Gast
dass es nur die Darstellung einer Ziffer ist weiß ich - nur war eben 
nicht klar wie ich neg. Ziffern ausdrücke!

Danke @ Walter Selg
das war's was ich gesucht habe!
Wenn Du packet-BCD meinst, dann geht das nicht.
Du bräuchtest 20 Codes, ein Nibble hat aber nur 16.
Du mußt also ein extra Bit dafür reservieren.

Aber packet-BCD hat keinerlei praktische Bedeutung mehr, kannst also tun 
und lassen damit, was Du willst.


Zahlen werden üblicher Weise binär (8, 16, 32 oder 64 Bit) bzw. als 
float (32, 64 oder 80 Bit) dargestellt.

Binär stellt man negative Zahlen immer als 2-er Komplement dar, damit 
Addition, Subtraktion und Multiplikation direkt ausgeführt werden 
können.

Nur die Division benötigt eine extra Vorzeichenbetrachtung.
Die Multiplikation benötigt nur dann eine Vorzeichenbetrachtung, wenn 
die doppelte Breite des Produkts genutzt wird.


Peter
Gast
Hi Leute,
ich muß mich im Rahmen eines Projektes genauer mit dem Rechen im 
BCD-Code befassen. Frage kann mir jmd einen Tipp bspw. gutes Buch oder 
einen Link empfehlen.

Danke.
Gast
www.google.de ist ganz hilfreich.
oder das hier:
http://www.coberweis.de/DV-Einfuehrung.doc

Da BCD eigentlich nur die Nibble- oder byteweise Darstellung von 
Dezimalziffern ist, ist z.B. die Addition damit nichts anderes als eine 
normale dezimale Addition. Wenn ein Überlauf auftritt (von 9 nach 10), 
gibts halt einen Übertrag in die nächste Stelle. Eine 
allgemeinverbindliche Definition von Vorzeichen, Kommas, usw. gibt es 
auch nicht, was das Rechnen nochmal vereinfacht :-)

Oliver
Jens wrote:
> Hi Leute,
> ich muß mich im Rahmen eines Projektes genauer mit dem Rechen im
> BCD-Code befassen. Frage kann mir jmd einen Tipp bspw. gutes Buch oder
> einen Link empfehlen.
>

Das lustige daran ist, dass du im Grunde schon dein ganzes Leben
lang in BCD rechnest :-) (OK, nicht dein ganzes Leben lang,
sondern erst seitdem du in die Grundschule gekommen bist)

Ein Byte hat 8 Bit. Das kann man in 2 Teile mit jeweils 4 Bit
unterteilen, den sog. Nibbles. Jedes Nibble kann 16 Zustände
annehmen. Davon werden aber nur 10 Zustände für die Ziffern
0 bis 9 benutzt.
In einem Byte wird also so gezählt

BCD               binäre Repräsentierung
00                 00000000
01                 00000001
02                 00000010
03                 00000011
04                 00000100
05                 00000101
06                 00000110
07                 00000111
08                 00001000
09                 00001001
10                 00010000
11                 00010001
12                 00010010
......
43                 01000011
44                 01000100
45                 01000101
....
97                 10010111
98                 10011000
99                 10011001

Ende. Mehr geht mit einem Byte nicht.

Jedes Nibble repräsentiert also eine Ziffer von 0 bis 9.
Mit einem Byte kann man also im Grunde das machen, was in
der Grundschule 'Rechnen im Zahlenraum bis 100' heist.
Rechnen mit größeren Zahlen funktioniert genau gleich,
so wie du es in der Grundschule mit Papier und Bleistift
gelernt hast.

Das ist im Grunde schon so ziemlich alles, was man über BCD
wissen muss, um damit was machen zu können.
Für negative Zahlen muss man sich noch was ausdenken. Am einfachsten
ist es, das Äquivalent zum binären 2-er Komplement zu benutzen:
Alle Zahlen größer als zb. 49 sind negative Zahlen, wobei die
99 einer -1 entspricht. -5 + 8 = 3 wird dann zu 95 + 8 = (1)03
Gast
> dass es nur die Darstellung einer Ziffer ist weiß ich - nur war eben
> nicht klar wie ich neg. Ziffern ausdrücke!

Was soll denn eine negative Ziffer überhaupt sein? Das ergibt doch 
keinen Sinn.

Eine negative Zahl ist ein Vorzeichen "-" mit beliebig vielen Ziffern. 
Eine positive Zahl ist ein Vorzeichen "+" mit beliebig vielen Ziffern. 
Die Ziffern sind aber immer die gleichen...

MfG, Heiko

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.