Warum kommt es bei Swift zu einem Überlauf, wenn einer Variable vom Typ Int8 ein 8-Bit-Binärwert zugewiesen wird?

Wenn ich diese Zeile auf dem Spielplatz schreibe:

let firstBits: Int8 = 0b11111111

Es gibt einen Fehler: Integer-Literal läuft über, wenn es in 'Int8' gespeichert wird

Da Int8 ein vorzeichenbehafteter Wert ist und sein Bereich von -128 bis 127 reicht, steht das erste Bit von links für die Single (Minus oder Plus), und die anderen 7 Bits stehen für den Wert. Es sollten also insgesamt 8 Bits im Binärformat vorhanden sein. Aber warum gibt es einen Fehler?

Wenn ich so mit 7 Bits schreibe:

let firstBits: Int8 = 0b1111111

Es liegt kein Fehler vor und firstBits hat den Wert 127.

Wie sollte ich firstBits mit Binärformat -128 zuweisen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage