C言語では、8進数は、数値の前に0
を置くことで記述できます。
int i = 012; // Equals 10 in decimal.
私はC#で16進数に相当するものを、番号の前に0x
を置くことで見つけました。
int i = 0xA; // Equals 10 in decimal.
今私の質問は:任意の値を8進数として表すために、C#に8進数に相当するものはありますか?
いいえ、C#には8進数リテラルはありません。
文字列の場合:Convert.ToInt32("12", 8)
は10
を返します。
言語仕様(ECMA-334)は非常に具体的です。
第4版、72ページ
9.4.4.2整数リテラル
整数リテラルは、int、uint、long、およびulong型の値を書き込むために使用されます。整数リテラルには、10進数と16進数の2つの形式があります。
8進形式はありません。
いいえ、C#には8進数リテラルはありません。
必要に応じて、文字列とベースを Convert.ToInt32
、しかしそれは明らかに文字通りニースにほど近いところはありません:
int i = Convert.ToInt32("12", 8);
いいえ、C#には8進数はありません。
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.
リテラルは使用できませんが、8進数を解析できます:Convert.ToInt32("12", 8)
。