2008-09-30 9 views
7

In C und C++ können Sie dem Compiler sagen, dass eine Zahl ein 'long' ist, indem Sie ein 'l' am Ende der Zahl setzen. z.B. lang x = 0l;Wie wird eine Zahl in ein Byte umgewandelt?

Wie kann ich dem C# -Compiler mitteilen, dass eine Zahl ein Byte ist?

+0

Ich mag die Antworten, aber wirft die Zahl auf ein Byte die gleiche wie die Anzahl als ein Byte deklarieren? – Robert

Antwort

9

Nach dem C# language specification gibt es keine Möglichkeit, ein Byte wörtliche angeben. Sie müssen auf Byte reduzieren, um ein Byte zu erhalten. Ihre beste Wette ist wahrscheinlich, in Hex anzugeben und zu werfen, wie folgt:

byte b = (byte) 0x10; 
+2

Ist '(byte)' casting ein "no-op"? Oder ist es wahr, dass mindestens * einige Zeit benötigt? – Pacerier

9
byte b = (byte) 123; 

obwohl

byte b = 123; 

das Gleiche tut. Wenn Sie eine Variable:

int a = 42; 
byte b = (byte) a; 
+0

Integer-Literal wird implizit von int in Byte konvertiert, so dass Sie keine (Byte) -Zahl vor die Zahl setzen müssen. Für den Fall, dass jemand die Logik für das obige Beispiel verpasst hat. –

4

Denken Sie daran, wenn Sie das tun:

byte b = (byte)300; 

es ist nicht so, wie Sie erwarten, zur Arbeit zu gehen.

+5

Die Wahrheit dieser Aussage hängt von meinen Erwartungen ab ;-) – phoog

+3

@casademora näher darauf eingehen, wie wird das Ergebnis sein? – Pacerier

+0

Ein Byte kann nur Zahlen von 0 bis 255 speichern (1111 1111 = 255). Diese Nummer kann nicht in einem Byte gespeichert werden, daher wird sie auf ein Byte "abgeschnitten". –

1

MSDN verwendet implicit conversion. Ich sehe keine byte type suffix, aber Sie könnten eine explizite Umwandlung verwenden. Ich würde nur eine 2-stellige hexadezimale Ganzzahl (int) Konstante verwenden.

1

Keine Notwendigkeit, den Compiler zu sagen. Sie können der Bytevariablen einen beliebigen gültigen Wert zuweisen, und der Compiler ist damit einverstanden: Es gibt kein Suffix für Byte.

Wenn Sie ein Byte in einem Objekt speichern wollen, müssen Sie werfen:

object someValue = (byte) 123; 
Verwandte Themen