www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik negative BCD-Zahlen


Autor: christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Walter Selg (waldo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
bei Siemens Step7 wird die Zahl um eine Stelle erweitert. Ist diese 
Stelle 0 ist die Zahl positiv ist diese Stelle=8 ist die Zahl negativ.

Es wird also Vorzeichen und Betrag dargestellt.

http://www.sps-lehrgang.de/bcd-code/

Gruß

Autor: 6632 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine BCD Zahl ist keine Zahl in dem Sinne, sondern nur die Darstellung 
einer Ziffer.

Autor: christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: OliverSo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: He Ro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.