Frage von MozartSalzburg, 29

Wie wandle ich eine Zahl zur Basis -2 um?

Also ich soll Zahlen umwandeln z.B 9(Basis10) = 01001(Basis2) = 011(Basis8), etc. Also es geht hauptsaechlich um Binaer, Oktal, Dezimalsystem.

Okay alles ganz einfach, aber wie wandle ich etwas in Basis -2 um? zB: -57 in eine Zahl zur Basis -2 umwandeln.

-57 in Basis 2 waere (im 2er Komplement) 1000111 und im 1er Komplement: 1000110. (Habs immer mit sukzessiver Division umgewandelt, nur mit Basis-2 geht das irgendwie nicht.)

Habt ihr einen Rat??

LG

Antwort
von ThomasAral, 29

doch geht schon ... heißt aber nicht zur basis minus 2 sondern zur basis 2 mit vorzeichen

das vorderste bit wird für das vorzeichen genommen, die restlichen umgekehrt

also  -4 wäre z.B. wenn du 8 bit genauigkeit hast

00000100  (=4)

11111011 (= -4)

du musst aber die anzahl der bits vorher wissen --- üblich sind 8, 16, 32, 64

Kommentar von ThomasAral ,

also deine 57 = 111001

8 Bit Zahl (nennt man unsigned short) = 00111001

dann negieren (8 bit zahl mit vorzeichen = signed short) = 11000110

Kommentar von ThomasAral ,

das selbe mit 16 bit:  57 = 0000000000111001  (= unsinged integer16)

dann negieren (signed integer16) = 1111111111000110

Kommentar von ThomasAral ,

sorry nicht ganz --- weil es die Zahl 0 als minus 0 nicht gibt, wird eins betragsmäßig abgezogen. --- du musst also bei -57  erstmal den 56 umwandeln.

also 56 = 111010

-57 = 11000101     (für 8 bit, 16 bit entsprechend)

Kommentar von MozartSalzburg ,

Hey danke, ja so habe ich es ja auch, aber das ist dann einfach eine negative Zahl zur Basis zwei. Ich brauch aber eine Zahl zur Basis -2. Also meine Angabe lautet so:

"Wandeln Sie die Zahl -57 in eine Zahl zur Basis -2 um. Hinweis: als Ziffern stehen 0 und 1 zur Verfügung, die Ziffer bi hat das Gewicht (-2)^i."

Keine passende Antwort gefunden?

Fragen Sie die Community