Zum Inhalt springen
  • 0

Warum ist der Wertebereich im negativen 1 höher?


Frage

Geschrieben

Hallo, ich habe einmal eine kurze Frage - anbei erstmal meine Tabelle und Notizen zu den verschiedenen Datentypen:

image.png.22ea536f36b091aba6951c671f9e49af.png

 

 

Was ich über die Datentypen bzw. deren Wertebereiche verstanden habe, ist ja schon darunter vermerkt - was ich jedoch nicht verstehe, ist, warum der negative Bereich der Werte nicht genauso wie im positiven um 1 verringert wird.

Nach meinem Verständnis wäre der höchstmögliche Wert für bspw. ein byte:

 

positiv: 0111 1111 entspricht +127

negativ: 1111 1111 entspricht -127

 

Warum ist jedoch der Wertebereich im negativen immer um eins höher? 

 

6 Antworten auf diese Frage

Empfohlene Beiträge

  • 1
Geschrieben (bearbeitet)

0 = 0000 0000

1 = 0000 0001

127 = 0111 1111

-128 = 1000 0000

-127 = 1000 0001

-126 = 1000 0010

-125 = 1000 0011

-1 = 1111 1111

Der erste Bit ist nicht das Vorzeichen, dieser Stack Overflow Post erklärt es besser als ich es könnte.

Bearbeitet von 0x00
  • 0
Geschrieben

Naja 2^8 = 256, 127 (Summe aller positiven) + 127 (Summe aller negativen) = 254, bleiben noch zwei übrig. 0 braucht einen Platz und dann kannst du entweder bis 128 oder -128 gehen.

Wenn du in beide Richtungen nur bis 127 gehen würdest würdest du eine Bitkombination verschenken.

  • 0
Geschrieben (bearbeitet)
vor 8 Minuten schrieb elgorgo:

Die 00000000 = 0 braucht auch einen Platz.
Und damit kann der positive Bereich eben einen Platz weniger belegen.

Daran habe ich ehrlich gesagt auch noch gar nicht gedacht, das macht aber natürlich schonmal sehr viel Sinn :D 

Aber wie ich jetzt z.B. eine -128 darstellen würde wüsste ich ja jetzt trotzdem noch nicht

 

vor 6 Minuten schrieb 0x00:

Naja 2^8 = 256, 127 (Summe aller positiven) + 127 (Summe aller negativen) = 254, bleiben noch zwei übrig. 0 braucht einen Platz und dann kannst du entweder bis 128 oder -128 gehen.

Wenn du in beide Richtungen nur bis 127 gehen würdest würdest du eine Bitkombination verschenken.

Da wäre wieder dasselbe, die Rechnung macht für mich auf jeden Fall Sinn, aber ich verstehe trotzdem nicht, wie ich dann z.B. die (-128) darstellen würde - 

die übrige Bitkombination wäre ja wahrscheinlich die 1000 0000 dann, wenn ich das richtig verstehe, oder? Wird diese dann einfach z.B. als -128 definiert, einfach nur um Sie nicht zu verschwenden, auch wenn das "normal gerechnet" bzw. umgewandelt gar nicht die -128 ergeben würde?

 

Und danke euch beiden auf jeden Fall schonmal :) 

Bearbeitet von Fisinym
  • 0
Geschrieben
vor 2 Minuten schrieb 0x00:

0 = 0000 0000

1 = 0000 0001

127 = 0111 1111

-128 = 1000 0000

-1 = 1111 1111

Der erste Bit ist nicht das Vorzeichen, dieser Stack Overflow Post erklärt es besser als ich es könnte.

Das hat mir meine Frage komplett beantwortet :) 

Danke dir!

  • 0
Geschrieben

Nennt sich dann übrigens Zweierkomplement. Bei dem Vorzeichenbit gibt es -0 und +0, weshalb der Wertebereich von + und - dann übereinstimmt.

Das Zweierkomplement wird von Computern verwendet, weil Subtraktion = Addition im Zweierkomplement ist. Dadurch ist kein spezielles Subtrahierwerk auf dem Prozessor nötig (vielleicht jedoch minimale Anpassungen).

Das ZK kann auch leicht bereichnet werden. Einfach die Zahl invertieren und eins aufaddieren.

VG

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...