Negative Hexa- und Oktalzahlen?

dragonabllz

Ensign
Registriert
Mai 2011
Beiträge
254
Hallo,

wir müssen in Informatik ein Programm erstellen, dass z.B: die Zahl -23 in ein Oktal- bzw. Hexazahl und Binär umwandelt.

Ich frage mich, wie das bei Oktal und Hexa geht. Bei Binärform ist das ja einfach, z.b: ist 9 =1001 und -9=111

Wie macht man das aber in Oktal und Hexa?
 
dein Beispiel wäre ziemlich fatal ohne weitere definitionen, da -9 = 7 wäre.

um dies zu bewerkstelligen definiere einfach die erste stelle als indikator von +/- und erweitere die eigentliche zahl damit.

Dies kannst du dann auf alle zahlensysteme anwenden.
 
hier stand ein post im klugscheiß-modus

€dit: da hat SeppoE noch schnell editiert ;D
 
Zuletzt bearbeitet:
Ich würd sagen man könnte wenn die Angabe wirklich so schwammig ist durchaus sagen es geht darum die zahl darzustellen und nicht die zahl als xbit integer zB und dann ist 9 =1001 und -9=-1001 wenn du das so willst weils für dich einfacher ist.

Ist ja nur für die interne Berechnung wichtig dass man das vorzeichen im datentyp berücksichtigt, so dass man es nicht extra führen muss
 
Ohh hab da natürlich was vergessen, wenn man eine Binäre Zahl als negativ darstellen möchte, muss man natürlich ein Bit für das Vorzeichen freihalten.
Nehmen wir mal ein anderes Beispiel: 6= 0110, dann wäre -6 =1010, wobei das erste 1 nur angibt, dass es sich um ein Vorzeichenbit handelt. Sorry hatte mich vorher vertan
 
Ich denke was die Leute die darauf hingewiesen haben sagen wollten war mehr dass du auch sagen musst deine Zahl ist quasi in 4 bit signed integer. Weil wenn man bei diesen 2er Komplementdarstellungen nicht dazu sagt dass man sie verwendet ist natürlich nicht klar dass dem so ist und es gibt halt für jede zalh auch trotzdem eine interpretation als positive
 
wenn dann schon im 2er komplement (6bit für 23), sprich:
09h = 001001 = +9 .. ganz normal
27h = 110111 = -9 .. (-32+16+4+2+1 = 9)
usw
 
Also, wir haben ein Programm erstellt, dass in einem Array (8 Felder, alle müssen besetzt sein) Binär,Oktal- oder Hexazahlen darstellt von einer Dezimahlzahl. Z.B: Die Zahl 23 wid in Binär so angezeigt: 00010111,
in Oktal: 00000027, und in Hexa: 00000017

Wir müssen jetzt aber das Programm so umprogrammieren, dass auch negative Zahlen umgewandelt werden können. In einem Beispiel hat der Lehrer folgendes angezeigt: Als er -4 als Zahl eingegeben hat, wurde dies wie folgt als Oktalzahl dargestellt: 77777774

Wie jetzt?
 
Das wichtige is eigentlich nur
Jede Ziffer z wird durch (b-1)-z ersetzt, und zur so entstehenden Zahl wird 1 addiert.
b is dabei die Basis also in deinem Fall 8.

Du hast also -23. 23 ist 27, soweit hast dus ja schon. Also hast du

00000027

Jetzt gehst du die einzelnen Ziffern durch und ersetzt die Stellen durch 8-1-z, also erstmal die 6 0en macht
8-1-0=7 dann 8-1-2=5 und 8-1-7=0 das ergibt dann zusammen

77777750 und dazu zählst du jetzt 1 dazu und kommst auf

77777751 als Ergebnis
 
Zuletzt bearbeitet: (Farben!!!)
Vielen DANK, ich werd mir das gleich mal genau anschauen, sollte ich noch fragen haben meld ich mich :D
 
Zurück
Oben