1
  • 编译器:GCC 4.7.2(Debian 4.7.2-5)
  • 平台:Linux 3.2.0 x86 (Debian 7.1)

我正在写一个字符串到整数转换函数,我在这里读到十六进制有它自己的指数符号形式。我对此有几个问题。

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

  2. 这篇文章还说,在“p”之后出现的幂的底数是 2 而不是 16,这是真的吗?

  3. 0x1.11p4整数还是有小数部分?

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

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

4

2 回答 2

3
  • 后面的值p是十进制的,但它表示以 2 为底的指数。
  • 0x1.11p4有一个小数部分,.11它也是以 16 为底的。
  • 没有八进制浮点常数,因此不能对它们使用指数表示法。
  • 为了澄清你的例子,0x1.11p4是 1.11 16 × 2 4
于 2013-10-24T01:08:16.393 回答
2

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

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

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

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

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

于 2013-10-24T01:21:35.077 回答