代码之家  ›  专栏  ›  技术社区  ›  Javed Akram

C中的八进制当量#

  •  41
  • Javed Akram  · 技术社区  · 14 年前

    在C语言中,八进制数可以通过放置 00 编号前,例如。

    编者按:它是 单一的 主要的 0 在C中将数字文字标识为八进制值的;附加的 实例无效。

     int i=0012; //equals 10 in decimal
    

    我通过放置 0x 编号前,例如。

     int i=0xA; //equals 10 in decimal
    

    现在我的问题是: 在C中有没有和C中一样的八进制数来表示八进制数?

    5 回复  |  直到 6 年前
        1
  •  42
  •   ulrichb    14 年前

    不,在C中没有八进制数文本。

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

        2
  •  26
  •   Julien Roncaglia    7 年前

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

    第4版,第72页

    9.4.4.2整型文字

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

    没有八进制形式。

        3
  •  18
  •   LukeH    14 年前

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

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

    int i = Convert.ToInt32("12", 8);
    
        4
  •  5
  •   abatishchev Karl Johan    14 年前

    不,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
  •  0
  •   Mike Dour    14 年前

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

    推荐文章