En langage C, le nombre octal peut être écrit en plaçant 0
avant le numéro, par exemple.
int i = 012; // Equals 10 in decimal.
J'ai trouvé l'équivalent d'hexadécimal en C # en plaçant 0x
avant le numéro, par exemple.
int i = 0xA; // Equals 10 in decimal.
Maintenant, ma question est: Y a-t-il un équivalent de nombre octal en C # pour représenter une valeur octale?
Non, il n'y a pas de littéraux de nombre octal en C #.
Pour les chaînes: Convert.ToInt32("12", 8)
renvoie 10
.
Non, il n'y a pas, la spécification de langue (ECMA-334) est assez spécifique.
4e édition, page 72
9.4.4.2 Littéraux entiers
Les littéraux entiers sont utilisés pour écrire des valeurs de types int, uint, long et ulong. Les littéraux entiers ont deux formes possibles: décimal et hexadécimal.
Pas de forme octale.
Non, il n'y a pas de littéraux octaux en C #.
Si nécessaire, vous pouvez passer une chaîne et une base à Convert.ToInt32
, mais c'est évidemment loin d'être aussi agréable que littéral:
int i = Convert.ToInt32("12", 8);
Non, il n'y a pas de nombre octal en C #.
Utilisez public static int ToInt32(string value, int fromBase);
fromBase
Type: System.Int32
The base of the number in value, which must be 2, 8, 10, or 16.
Vous ne pouvez pas utiliser de littéraux, mais vous pouvez analyser un nombre octal: Convert.ToInt32("12", 8)
.