2008-09-30 6 views
7

En C et C++, vous pouvez dire au compilateur qu'un nombre est un 'long' en mettant un 'l' à la fin du nombre. par exemple long x = 0l;Comment convertir un nombre en octet?

Comment puis-je dire au compilateur C# qu'un nombre est un octet?

+0

J'aime les réponses, mais est de couler le nombre à un octet la même chose que de déclarer le nombre comme un octet? – Robert

Répondre

9

Selon le C# language specification il n'y a aucun moyen de spécifier un octet littéral. Vous devrez jeter à octet afin d'obtenir un octet. Votre meilleur pari est probablement de spécifier en hexadécimal et tomber, comme ceci:

byte b = (byte) 0x10; 
+2

Est-ce que '(octet)' lance un "no-op"? Ou est-ce vrai qu'au moins * un peu de temps * est requis? – Pacerier

9
byte b = (byte) 123; 

même si

byte b = 123; 

fait la même chose. Si vous avez une variable:

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

littéral entier sera implicitement converti de int en octet de sorte que vous n'avez pas besoin de mettre (byte) cast avant numéro. Dans le cas où quelqu'un a manqué la logique pour l'exemple ci-dessus. –

4

Rappelez-vous, si vous le faites:

byte b = (byte)300; 

il ne va pas travailler comme vous attendez.

+5

La vérité de cette déclaration dépend de mes attentes ;-) – phoog

+3

@casademora élaborer sur ce point, comme quel sera le résultat? – Pacerier

+0

Un octet ne peut stocker que des nombres compris entre 0 et 255 (1111 1111 = 255). Ce nombre ne peut pas être stocké dans un octet, il sera donc "tronqué" à un octet. –

1

MSDN utilise implicit conversion. Je ne vois pas de byte type suffix, mais vous pouvez utiliser une distribution explicite. J'utiliserais simplement une constante hexadécimale à deux chiffres (int).

1

Inutile de dire au compilateur. Vous pouvez assigner n'importe quelle valeur valide à la variable byte et le compilateur lui convient parfaitement: il n'y a pas de suffixe pour byte.

Si vous souhaitez stocker un octet dans un objet que vous devez jeter:

object someValue = (byte) 123; 
Questions connexes