R sprintf dec2hex错误

时间:2014-06-23 18:29:01

标签: r hex decimal printf

在Linux上运行R(请参阅下面的输出以下版本) 我通过sprintf转换为十六进制来体验奇怪的行为。 有人知道什么可以解释这个吗? (即第一次转换正常,第二次返回有关数字的错误):

>  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   os linux-gnu   system x86_64,linux-gnu   状态   专业3   小0.1   2013年   05月   第16天   svn rev 62743   语言R.   version.string R版本3.0.1(2013-05-16)   昵称Good Sport

谢谢,迈克尔

1 个答案:

答案 0 :(得分:3)

gcc:format'%x'需要一个类型为'unsigned int'的参数,但参数2的类型为'long int'。

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

所以这是正确的:

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