8.3k Aufrufe
Gefragt in Plauderecke von
Hallo,

ich sitze nun schon seit Stunden an meinem Schreibtisch und komme einfach nicht weiter.
Wie kann man Oktalzahlen und Hexadezimalzahlen addieren und subtrahieren? Addieren fällt mir nicht sonderlich schwer aber subtrahieren kapiere ich beim Besten Willen nicht.

Beispiel: Das * dient nur der Einrückung!!!
* 342
+173
=535(oktalsystem)

Man rechnet 2+3=5, 4+7=11, nach 8 ist der Block aber voll, deshalb bleiben 3 übrig und man "merkt sich 1". 3 + 1+1 = 5 > 535

Wie subtrahiere ich aber in diesem Beispiel?

*222
-143
= ? (oktalsystem) (Ergebnis = 57)

Man rechnet 12 -3 = 9, 9 ist nicht dabei, also nimmt man die höchste Zahl 7 und "merkt sich 1". Jetzt komme ich nicht weiter. 12 - (4+1gemerkt) also 12 - 5 wäre ja 7, was ja auch dabei wäre. Folglich wäre mein Ergebnis 77, da man sich ja wieder "1 merkt" und 2-2=0 ist.

Wo ist mein Denkfehler? Kann mir das Rechenschema mal jemand allgemein erklären? Ich mache schon seit Stunden Aufgaben. Ab und zu stimmts, dann wieder nicht.

Subtrahieren im Hexadezimalsystem verstehe ich auch nicht wirklich. Ich habe mir schon zig Sachen im Netz durchgelesen aber ich finde nur Vorgehensweisen, die einzelnen Zahlen umzurechnen, auszurechnen (vorzugsweise im Dezimalsystem) und dann wieder in das gewünschte Zahlensystem zurückzurechnen. Das dauert aber zu lange.
Es geht ja auch mit obiger Methode. Nur verstehe ich sie beim besten Willen nicht.

Bitte helft mir!!!

Grüße

Captain_Sparrow

6 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
hallo,

Wie subtrahiere ich aber in diesem Beispiel?

*222
-143
= ? (oktalsystem) (Ergebnis = 57)

Man rechnet 10 (da 8+2) -3 = 7. Jetzt komme ich nicht weiter. 10 - (4+1gemerkt) also 5 , was ja auch dabei wäre. Folglich wäre das Ergebnis 57, da man sich ja wieder "1 merkt" und 2-2=0 ist.

Du darfst nich mit 10 bei Oktalzahlen rechnen. Bei Oktalzahlen ist die "zehn" die 8.

Ähnlich ist es bei Hexadezimal dort ist die "zehn" das F, da 11 = A; 12 = B; 13 = C; 14 = D; 15 = E und 16 = F.

Ich hoffe es einigermassen verstädlich erklärt zu haben.

Gruß

Helmut
0 Punkte
Beantwortet von
Einer meiner Mitstudenten hat es mir soeben erklärt. Problem gelöst.
0 Punkte
Beantwortet von
Du kannst aber noch die Probe machen indem Du das Ergebnis mit
Pi also 3,14 dividierst,also den Dividenten.

dann kommt raus = .... rechne gerade.... warte
0 Punkte
Beantwortet von
ist doch ganz klar was rauskommt, dass gleiche wie im zehner System, nur hat inOktal bzw. Hex angegeben.....
0 Punkte
Beantwortet von
Hab wieder eine neue Frage. Diesmal bezieht es sich auf die Darstellung negativer Zahlen mit Hilfe des Zweierkomplements.


Beispiel:

35 soll ins Binärsystem umgewandelt werden. Durch die Division mit Rest kommt man zu dem Ergebnis: 100011
Um die Zahl zu negieren zieht man ja eins ab und tauscht die 0en und 1en aus.
(Zwischenschritt: 35-1=34, in Binär 100010)

Nach Vertauschen der 0 und 1 kommt man auf 011101.
Durch das Voranstellen einer 0 (für positive Zahlen) oder 1 (für negative Zahlen) erkennt man das Vorzeichen.
-35 wäre also 10100010.

Beispiel 2:
128 in Binär wäre 10000000
Nach -1 erhalte ich als Zwischenschritt 127 (01111111)
Wenn ich nun aber die 0en und 1en tausche erhalte ich ja 10000000, was ja 128 ergeben würde.
Ich kann also nicht erkennen ob ich 128 oder -128 meine. Eine 1 für das Vorzeichen kann ich ja nicht mehr dransetzen, da meine 8bit schon voll sind.

Durch Google bin ich auf folgendes gestoßen:

Mein ehemaliger Wertebereich von 0 bis 255 verändert sich also zu -128 bis +127.


Das würde ja bedeuten, dass ich die 128 als positive Zahl nicht darstellen kann, was aber obiger "Rechnung" widerspricht.


Außerdem: Was bedeutet ein 'b' in der Darstellung eines Zweierkomplements. z.B. 0b10101100?

Grüße

Captain_Sparrow
0 Punkte
Beantwortet von
Nachtrag:
10100010 (-35) ist natürlich falsch. Sollte 10011101 heißen.
Durch Vertauschen der 0en erhalte ich ja eigentlich "nur" 011101. Wenn ich die 8 Zeichen voll machen will und die Zahl negieren, muss ich dann nur eine 1 vorne ransetzen, siehe oben, oder die Zahl auffüllen mit 1en?
Der Windows Rechner spuckt nämlich 11011101 aus.
...