代码之家  ›  专栏  ›  技术社区  ›  John Vulconshinz

八进制的指数表示法

  •  1
  • John Vulconshinz  · 技术社区  · 12 年前
    • 编译器:GCC 4.7.2(Debian 4.7.2-5)
    • 平台:Linux 3.2.0 x86(Debian 7.1)

    我正在写一个字符串到整数的转换函数 here 十六进制有自己的指数表示法。我对此有几个问题。

    1. 文章说“p”后面的值是十进制而不是十六进制,这是正确的吗?

    2. 文章还说,“p”后面的幂的基数是2而不是16,这是真的吗?

    3. 0x1.11p4 一个整数还是它有分数成分?

    这就引出了一个主要问题:八进制有自己的指数表示法吗?如果是,形式是什么?

    如果八进制有 如果有自己的指数表示法,那么将十六进制表示法也适用于八进制字符串是否合理?

    2 回复  |  直到 12 年前
        1
  •  3
  •   Delan Azabani    12 年前
    • 后面的值 p 是十进制的,但它表示以2为底的指数。
    • 0x1.11p4 具有的分数分量 .11 其也在底座16中。
    • 没有八进制浮点常量,所以不能使用指数表示法。
    • 为了用你的例子来澄清, 0x1.11第4页 为1.11 16 2. 4. .
        2
  •  2
  •   paddy    12 年前

    我看到你对维基百科有一种健康的不信任

    1. 是的,指数是十进制的。

    2. 是的,基数是2,而不是16。

    3. 0x1.11p4相当于11.1 16 并且是浮点值,而不是整数。

    我不知道八进制形式。如果你想定义自己的八进制形式,我认为这没有问题。大概你会使用 0 前缀而不是 0x 其他的都保持不变。显然,您不能用这种表示法编写代码,因为编译器不支持它。