web-dev-qa-db-ja.com

C#の8進数の同等物

C言語では、8進数は、数値の前に0を置くことで記述できます。

 int i = 012; // Equals 10 in decimal.

私はC#で16進数に相当するものを、番号の前に0xを置くことで見つけました。

 int i = 0xA; // Equals 10 in decimal.

今私の質問は:任意の値を8進数として表すために、C#に8進数に相当するものはありますか?

46
Javed Akram

いいえ、C#には8進数リテラルはありません。

文字列の場合:Convert.ToInt32("12", 8)10を返します。

41
ulrichb

言語仕様(ECMA-334)は非常に具体的です。

第4版、72ページ

9.4.4.2整数リテラル

整数リテラルは、int、uint、long、およびulong型の値を書き込むために使用されます。整数リテラルには、10進数と16進数の2つの形式があります。

8進形式はありません。

26

いいえ、C#には8進数リテラルはありません。

必要に応じて、文字列とベースを Convert.ToInt32 、しかしそれは明らかに文字通りニースにほど近いところはありません:

int i = Convert.ToInt32("12", 8);
18
LukeH

いいえ、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.

[〜#〜] msdn [〜#〜]

5
abatishchev

リテラルは使用できませんが、8進数を解析できます:Convert.ToInt32("12", 8)

0
Mike Dour