【问题标题】:R sprintf dec2hex errorR sprintf dec2hex 错误
【发布时间】:2014-06-23 18:29:00
【问题描述】:

在 linux 上运行 R(参见下面的输出版本) 我在 sprintf 将 dec 转换为 hex 时遇到了奇怪的行为。 有谁知道这可以解释什么? (即第一次转换工作正常,第二次返回有关数字的错误):

>  sprintf("%x",2109440182)
[1] "7dbb80b6"
>  sprintf("%x",2151028214)
Error in sprintf("%x", 2151028214) :
  invalid format '%x'; use format %f, %e, %g or %a for numeric objects

版本 _ 平台 x86_64-pc-linux-gnu 拱 x86_64 操作系统 linux-gnu 系统 x86_64, linux-gnu 地位 专业 3 未成年人 0.1 2013 年 05月 第 16 天 svn 版本 62743 语言 R version.string R 版本 3.0.1 (2013-05-16) 昵称 好运动

谢谢,迈克尔

【问题讨论】:

  • 似乎限制是:> sprintf("%x",2147483647) [1] "7fffffff" > sprintf("%x",2147483648) sprintf("%x", 2147483648 中的错误) : 无效格式 '%x';对数字对象使用格式 %f、%e、%g 或 %a

标签: r hex decimal printf


【解决方案1】:

gcc : 格式“%x”需要一个类型为“unsigned int”的参数,但参数 2 的类型为“long int”。

我猜这个数字比 unsigned int 大。我系统中的最大范围是 2147483648,

所以这是正确的:

printf("%x\n", 2147483647);

【讨论】:

    猜你喜欢
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    相关资源
    最近更新 更多