Gegeben waren folgende vorz.behaftete Zahlen:
3FA
B40
Ich habe folgende Werte errechnet:
1018
-1216
stimmen sie?
Ajo
Gegeben waren folgende vorz.behaftete Zahlen:
3FA
B40
Ich habe folgende Werte errechnet:
1018
-1216
stimmen sie?
Ajo
Gegeben waren folgende vorz.behaftete Zahlen:
3FA
B40Ich habe folgende Werte errechnet:
1018
-1216
Das ist davon Abhängig, welches Zahlenformat Du bei den
Hex-Zahlen zu Grunde legst:
z.B. Byteformat 0…255 = 0 … FFhex -> kein Vorzeichen!
oder shortinteger -128…0…127 = F8hex … 0 … F7hex
oder Word: 0…65536 = 0…FFFFhex
oder Integer: -32768 … 0… 32767 = F800hex … 0… F7FFhex
In diesem Format stimmen Deine Zahlen:
Als Longinteger würde es aber B40hex = 2880dez. sein
Gruß Uwi
Das ist davon Abhängig, welches Zahlenformat Du bei den
Hex-Zahlen zu Grunde legst:
Danke erst mal
Die Aufgabe lautete nur: gegeben sind hexadez. Darstellungen vorzeichenbehafteter ganzer Zahlen. Bestimmen Sie die numerischen Werte dieser Zahlendarstellungen
Ich habe noch eine weitere Frage: die hexadez. Zahl 80 umwandeln. Ich mache es über das Zweierkomplement: zuerst in Binär umrechnen, dann: wenn 0 am Anfang: normal in Dezimal umrechnen. Wenn 1 am Anfang: -1 rechnen und Komplement bilden. Dabei komme ich bei 80(hex) wieder auf die Zahl, die ich nach Umwandlung in Binär erhalten hatte!: 1000 0000. Lasse ich jetzt die 1 vorne weg (da ja vom Vorzeichen herrührt)? Oder wandle ich die komplette Zahl in Dezimal um? Nämlich, ließe ich die eins weg, so käme ja null heraus.
Ajo
Gegeben waren folgende vorz.behaftete Zahlen:
3FA
B40
Das heißt deine Auflösung beträgt 12 Bit. Bit 12 ist demnach bei einer vorz. behaftete Zahl das Vorzeichen-Bit. (0 = + und 1 = -)
3FA(HEX) = [0] 011.1111.1010(BIN)
->Bit 12 = 0 -> [+] 1018(DEZ)
B40(HEX) = [1] 011.0100.0000(BIN)
->Bit 12 = 1 -> [-]
->2-er Komplement
0 100.1011.1111(BIN) + 1 -> 1216(DEZ)
B40(HEX) = -1216(DEZ)
Das ist davon Abhängig, welches Zahlenformat Du bei den
Hex-Zahlen zu Grunde legst:Danke erst mal
Die Aufgabe lautete nur: gegeben sind hexadez. Darstellungen
vorzeichenbehafteter ganzer Zahlen. Bestimmen Sie die
numerischen Werte dieser Zahlendarstellungen
Steht nicht dabei, wieviele hexadezimale Stellen Deine Zahl hat?
(3 Stellen hexadezimal = 12 Stellen binär)
Ich habe noch eine weitere Frage: die hexadez. Zahl 80
umwandeln. Ich mache es über das Zweierkomplement: zuerst in
Binär umrechnen, dann: wenn 0 am Anfang: normal in Dezimal
umrechnen. Wenn 1 am Anfang: -1 rechnen und Komplement bilden.
Die 0 wenn Du nach vorne entsprechend dem Format auffüllst, sonst wäre ja auch 100bin ne negative Zahl.
Dabei komme ich bei 80(hex) wieder auf die Zahl, die ich nach
Umwandlung in Binär erhalten hatte!: 1000 0000. Lasse ich
jetzt die 1 vorne weg (da ja vom Vorzeichen herrührt)? Oder
wandle ich die komplette Zahl in Dezimal um? Nämlich, ließe
ich die eins weg, so käme ja null heraus.
Also wenn die Zahl negativ ist(erstes Bit = 1, aber beachte das Zahlenformat) dann bildet Du das Zweierkomplement (Bits umdrehen und dann +1) und dann hast Du die Zahl.
Also ist 80hex die richtige Zahl ( 128, bzw -128, da ja negativ)
Deshalb hast Du ja bei 2 Stellen hex (8bit) den Zahlenbereich
-2^7 … 0 … (2^7 - 1)
Ajo
Tschööö
mus.
*habe gerade einiges mit 16bit auszuwerten…
Hallo,
die folgenden 2 Sätze sind immer noch gültig
Das ist davon Abhängig, welches Zahlenformat Du bei den
Hex-Zahlen zu Grunde legst:
Wie man 80hex interpretiert, hängt von der def. des
Zahlenformates ab.
Dabei ist (nur) eine der Möglichkeiten,das höchstwertige Bit
als Vorzeichen zu deklarieren. Das wird in der Rechentechnik
z.B. bei Realformaten gemacht.
Bei anderen Formaten ist es wohl anders (siehe Integer).
-> z.B. gängiges Intergerformat -2^15 …0 … 2^15-1
-> also F800 … 0 = -32768 … 0, FFFFhex ist also =(-1)
Das geht also mit Vorzeichenbit gar nicht. Hier ist die
Diff. zw. Hexzahl und 2^16+1 = neg. Dezimalzahl für Hexzahl >2^15
z.B. FFFF - (FFFF+1) = (-1)
Was nun also rauskommen soll, ist nur aus dem Kontext dessen
zu entnehmen, was Ihr gerade so lernt.
Auch die Variante von Kollegen Biegler ist nur eine mögliche
Interpretation einer unvollständigen Aufgebenstellung.
Gruß Uwi
Danke erst mal
Die Aufgabe lautete nur: gegeben sind hexadez. Darstellungen
vorzeichenbehafteter ganzer Zahlen. Bestimmen Sie die
numerischen Werte dieser ZahlendarstellungenIch habe noch eine weitere Frage: die hexadez. Zahl 80
umwandeln. Ich mache es über das Zweierkomplement: zuerst in
Binär umrechnen, dann: wenn 0 am Anfang: normal in Dezimal
umrechnen. Wenn 1 am Anfang: -1 rechnen und Komplement bilden.
Dabei komme ich bei 80(hex) wieder auf die Zahl, die ich nach
Umwandlung in Binär erhalten hatte!: 1000 0000. Lasse ich
jetzt die 1 vorne weg (da ja vom Vorzeichen herrührt)? Oder
wandle ich die komplette Zahl in Dezimal um? Nämlich, ließe
ich die eins weg, so käme ja null heraus.Ajo
geht auch mit 2’er-Kompl.
Bei anderen Formaten ist es wohl anders (siehe Integer).
-> z.B. gängiges Intergerformat -2^15 …0 … 2^15-1
-> also F800 … 0 = -32768 … 0, FFFFhex ist also =(-1)
Das geht also mit Vorzeichenbit gar nicht. Hier ist die
Diff. zw. Hexzahl und 2^16+1 = neg. Dezimalzahl für Hexzahl
>2^15
z.B. FFFF - (FFFF+1) = (-1)
Da geht natürlich auch mit 2#Komplement zu rechen.
Wird praktisch auch gemacht, weil viel schneller arzuarbeiten.
Ich habe noch eine weitere Frage: die hexadez. Zahl 80
umwandeln. Ich mache es über das Zweierkomplement: zuerst in
Binär umrechnen, dann: wenn 0 am Anfang: normal in Dezimal
umrechnen. Wenn 1 am Anfang: -1 rechnen und Komplement bilden.
Dabei komme ich bei 80(hex) wieder auf die Zahl, die ich nach
Umwandlung in Binär erhalten hatte!: 1000 0000. Lasse ich
jetzt die 1 vorne weg (da ja vom Vorzeichen herrührt)? Oder
wandle ich die komplette Zahl in Dezimal um? Nämlich, ließe
ich die eins weg, so käme ja null heraus.
Ich weiß ja nicht, wie Ihr es machen sollt?
80hex = 1000 0000 binär
-> Das MSB=„Minus“ wegnehmen, bleibt: 000 0000 binär
als Komplement = 111 1111 = 7F -> (+1) = -128
So müßte es auch gehen.
Uwi