Autor |
Frage zur Grundlage der Mikroprozessorentechnik |
|
|
|
|
BID = 166778
HeikoF Gelegenheitsposter
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 89 Wohnort: Kösching
|
|
Hallo leute,
ich habe mal wieder eine Frage.Hat vieleicht jemand ahnung von der "Zweierkomplementarithmetik"? Ich komme hier über haupt nicht klar damit.
Ich habe hier Beispielaufgaben, kann mir jemand anhand diser Aufgaben die sache erklären? Ich währe sehr dankbar.
Zu den Aufgaben:
A : 0110 1001 ; A : 0000 1111 ; A : 0101 1010
+B : 0011 1100 ; -B : 0000 1111 ; -B : 0011 0011
A : 0000 0001
-B : 0000 0010
[ Diese Nachricht wurde geändert von: HeikoF am 25 Feb 2005 11:06 ] |
|
BID = 167324
DrZoidberg Stammposter
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) Beiträge: 277
|
|
Das funktoniert im Prinzip ganz genauso wie bei "normalen" Zahlen also wie bei Zahlen im Dezimalsystem.
Nur mit dem Unterschied, dass hier die 1 die höchste Ziffer ist.
Also 1 + 1 kann nicht 2 ergeben, da 1 ja schon die größtmögliche einstellige Zahl ist. Und wenn man zur grössten einstelligen Zahl noch 1 addiert muss natürlich eine zweistellige rauskommen also 1 + 1 = 10.
Vergleich Dezimal Binär:
0 - 0
1 - 1
2 - 10
3 - 11
4 - 100
5 - 101
6 - 110
7 - 111
usw.
A : 0110 1001
+B: 0011 1100
Bei dieser Rechnung kann man genausi vorgehen wie man es in der Grundschule mit Dezimalzahlen gelernt hat.
Man fängt ganz rechts an.
1 + 0 = 1
0 + 0 = 0
0 + 1 = 1
1 + 1 = 0 + ein Übertrag von 1
0 + 1 + übertrag 1 = 0 + Übertrag 1
1 + 1 + 1 = 1 + Übertrag 1
1 + 0 + 1 = 0 + Übertrag 1
0 + 0 + 1 = 1
Das Ergebnis ist also: 10100101
|
|
BID = 167335
BlackLight Inventar
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) Beiträge: 5362
|
Da es 2K Zahlen sind, geht die Subtraktion fast genau so einfach wie die Addition.
Würde einfach das Zweier Komplement addieren.
Code : |
A : 0000 1111
-B : 0000 1111; (-B) = 1111 0000 + 0000 0001 = 1111 0001
0000 1111
+ 1111 0001
------------
(1)0000 0000 = 0D (Werden hier wohl 8Bit 2K Zahlen sein und so fällt der Überlauf weg)
========================================
A : 0000 0001
-B : 0000 0010; (-B) = 1111 1110
0000 0001
+1111 1110
----------
1111 1111 = -1D |
|
(-1 D Soll die -1 im Dezimalsystem sein.)
edit:
Könnte sein, dass DrZoidberg "Zweierkomplement" überlesen hat, deshalb hier noch eine Tabelle mit allen 4Bit-2K-Zahlen mit ihrem dezimalen Wert:
Code : |
2K Dezimal
0111 7
0110 6
0101 5
0100 4
0011 3
0010 2
0001 1
0000 0
1111 -1
1110 -2
1101 -3
1100 -4
1011 -5
1010 -6
1001 -7
1000 -8 |
|
[ Diese Nachricht wurde geändert von: BlackLight am 26 Feb 2005 19:52 ]
|
BID = 167495
HeikoF Gelegenheitsposter
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 89 Wohnort: Kösching
|
Mmhh, schaun wir mal ob ich das richtig verstanden habe!
Also dann zu der Aufgabe:
A:0101 1010
-B:0011 0011 = +B:0100 0100
A:0101 1010
+B:0100 0100
ergibt:
01001 1110, ist das so richtig?
_________________
|
BID = 168339
perl Ehrenmitglied
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 11110,1 Wohnort: Rheinbach
|
Tip:
In Windows gibt's unter Zubehör auch einen Rechner, der nicht nur dezimal, sondern auch oktal, hexadezimal und binär beherrscht.
Bei Subtraktionen kann die Wahl der Wortlänge das Ergebnis beeinflussen !
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 168938
HeikoF Gelegenheitsposter
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 89 Wohnort: Kösching
|
Ok,ich gehe dann mal davon aus das mein Ergebniss falsch war.
Ich hab´s nun mit dem Rechner versucht und komme auf ein Ergebniss von : 100111 = 00100111, so korrekt?
Oder mache ich immer noch einen Fehler?
_________________
|
BID = 169136
perl Ehrenmitglied
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 11110,1 Wohnort: Rheinbach
|
5ah - 33h = 27h - kann man im Kopf,
also ist dein Ergebnis richtig.
Du solltest aber bei der Rechnung auch die vorlaufenden Nullen mitführen und nicht erst hinterher dranzaubern, denn 100111 = dezimal 39 könnte bei einem 6 Bit Wort auch -25 dezimal bedeuten.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|