八进制的指数表示法

时间:2013-10-24 01:03:34

标签: c hex octal

  • 编译: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是整数还是有分数成分?

  4. 这导致了一个主要问题:八进制是否有自己的指数表示形式?如果是的话,形式是什么?

    如果八进制确实拥有它自己的指数表示法,那么将十六进制表示法调整为八进制字符串是否合理?

2 个答案:

答案 0 :(得分:3)

  • p后面的值以十进制表示,但它表示基数为2的指数。
  • 0x1.11p4的小数部分.11也位于16位。
  • 没有八进制浮点常量,因此不能对它们使用指数表示法。
  • 为了澄清你的例子,0x1.11p4是1.11 16 ×2 4

答案 1 :(得分:2)

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

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

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

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

  4. 我不知道八进制形式。如果你想定义自己的,我没有看到它的问题。大概你会使用0前缀而不是0x,并保留其他所有内容。显然你不能用这种表示来编写代码,因为编译器不支持它。