【问题标题】:Octal equivalent in C#C# 中的八进制等效项
【发布时间】:2010-11-22 15:31:40
【问题描述】:

在 C 语言中,八进制数可以通过在数字前放置 0 来编写,例如

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

我在 C# 中通过将 0x 放在数字之前找到了十六进制的等价物,例如

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

现在我的问题是: 在 C# 中是否有任何等效的八进制数可以将任何值表示为八进制?

【问题讨论】:

  • 其实只需要一个前导零。
  • @RenniePet:0o 会很好。

标签: c# .net numbers


【解决方案1】:

不,C# 中没有八进制数字文字。

对于字符串:Convert.ToInt32("12", 8) 返回10

【讨论】:

    【解决方案2】:

    不,没有,语言规范 (ECMA-334) 非常具体。

    第 4 版,第 72 页

    9.4.4.2 整数字面量

    整数字面量用于写入 int、uint、long、 和乌龙。整数文字有两种可能的形式:十进制和 十六进制。

    没有八进制形式。

    【讨论】:

    • 更新:C# 7 及更高版本现在还支持 binary 文字,例如 0b10 用于十进制 2
    【解决方案3】:

    不,C# 中没有八进制文字。

    如有必要,您可以将字符串和基数传递给Convert.ToInt32,但它显然远不如文字好:

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

    【讨论】:

      【解决方案4】:

      不,C# 中没有八进制数。

      使用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】:

        您不能使用文字,但可以解析八进制数:Convert.ToInt32("12", 8)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-01-26
          • 1970-01-01
          • 2014-09-18
          • 2010-10-24
          • 2019-07-20
          • 2014-12-24
          • 2012-07-31
          • 1970-01-01
          相关资源
          最近更新 更多