【问题标题】:converting decimal to hex in R在R中将十进制转换为十六进制
【发布时间】:2017-10-15 22:00:25
【问题描述】:

我想将十进制数转换为十六进制格式,只设置与该十进制数对应的位。例如,对于输入 0,应设置位 0 并导致

>  paste("0x", sprintf("%032x",2^(0)),sep="")  
[1] "0x00000000000000000000000000000001"

对于 1,应该设置第 1 位,导致

>  paste("0x", sprintf("%032x",2^(1)),sep="")  
[1] "0x00000000000000000000000000000002"

这有效到 30

> paste("0x", sprintf("%032x",2^(30)),sep="")  
[1] "0x00000000000000000000000040000000"  

但不适用于大于该值的值

>  paste("0x", sprintf("%032x",2^(32)),sep="")  
Error in sprintf("%032x", 2^(32)) :invalid format '%032x'; use format %f, %e, %g or %a for numeric objects

知道如何解决这个问题吗?

【问题讨论】:

    标签: r


    【解决方案1】:

    我认为您正在“重载” sprintf 函数。也就是说,您的类型设置为“%032x”,然后传入值 2^(32),该函数不会将其视为“%032x”,因此会出现错误。

    这里有几个半相关的问题,但我认为这些问题不能算作完全重复: why causes invalid format '%d in R?

    hex to string formatting conversion in python

    Why does a 32-bit OS support 4 GB of RAM?

    【讨论】:

      猜你喜欢
      • 2013-10-30
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 2018-09-04
      • 2017-07-31
      • 2015-11-11
      相关资源
      最近更新 更多