Veröffentlicht 20. Oktober 20222 j Hallo, ich habe einmal eine kurze Frage - anbei erstmal meine Tabelle und Notizen zu den verschiedenen Datentypen: 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?
20. Oktober 20222 j Die 00000000 = 0 braucht auch einen Platz. Und damit kann der positive Bereich eben einen Platz weniger belegen.
20. Oktober 20222 j 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.
20. Oktober 20222 j Autor 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 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 20. Oktober 20222 j von Fisinym
20. Oktober 20222 j Lösung 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 20. Oktober 20222 j von 0x00
20. Oktober 20222 j Autor 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!
5. März 20232 j 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 Konto oder melde dich an, um einen Kommentar zu schreiben.