Vielen Dank an alle Benutzer.
von dem, was ich in den Kommentaren gesehen habe, erreichte ich diese Schlussfolgerung, die alle Diskussionen beenden wird. gibt es 3 verschiedene Möglichkeiten, signierte Typen zu repräsentieren.
- unterzeichnet Größe
- 1-Komplement
- 2-Komplement
und in all diesen Darstellungen, wenn das höchstwertige Bit 1 ist, dann ist die Zahl negativ ist, und wenn es 0 ist, dann die Anzahl ist positiv. Daher verwendet mein Computer in dieser Frage das Zweierkomplement. Als Ergebnis ist 10010000 eine Darstellung in Zweierkomplement. Sein Wert ist gleich dem Negativ von 01110000 = 112, also ist das wirkliche Ergebnis -112.
Wenn der Typ jedoch nicht vorzeichenbehaftet ist, muss der Wert 400 in binäre Darstellung umgewandelt werden, aber nur Platz für 8 Ziffern. Daher ist die Darstellung 1001 0000 und da dies nicht vorzeichenbehaftet ist, ist es gleich 2^7 + 2^4 = 144.
Zuerst sagen, was hat dir dein C-Buch über die Reichweite eines 'Char'-Typs erzählt? –
heißt es, dass es 8 Bits sind. – delsa
@delsa Bereich ist eine Sache und Größe ist eine andere Sache. – Michi