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?