Warum kann ich keinen negativen Wert in einer Byte-Variablen speichern?

7

Ich konvertiere Code, der in Java funktioniert, aber nicht in C #

%Vor%

Dies erzeugt einen Kompilierzeitfehler "Konstanter Wert '-128' kann nicht in ein 'Byte' umgewandelt werden." Wie kann ich eine negative Zahl für ein Byte speichern?

    
user2077725 18.02.2013, 15:02
quelle

2 Antworten

6

Der Datentyp byte in Java ist signiert (-128-127). Der entsprechende Datentyp in C # ist sbyte .

Also ist der äquivalente C # -Code wie folgt:

%Vor%

Wenn Sie ein Array von unsignierten Bytes (0-255) wünschen, ist byte mit dem gleichen Bitmuster wie sbyte -128 128 (0x80).

%Vor%

Siehe auch: Integraltypen-Tabelle (C # -Referenz)

    
dtb 18.02.2013, 15:08
quelle
15

In C # stellt ein byte eine vorzeichenlose 8-Bit-Ganzzahl dar und kann daher keinen negativen Wert enthalten (gültige Werte reichen von 0 bis 255 ). Eine Alternative ist sbyte , was eine signierte 8-Bit-Ganzzahl ist (gültige Werte von -128 bis 127 ).

    
John Willemse 18.02.2013 15:07
quelle

Tags und Links