将小数转换为二进制

时间:2015-09-25 07:48:56

标签: r

我一直在使用以下代码将小数转换为二进制文件,但我似乎无法将大于1069的十进制转换为二进制。

run_id = 1:1600
run_ids = as.data.frame(run_id)
run_ids$bin = 0

for (i in 1:length(x)){
  run_ids[i,2] = as.numeric(paste(rev(as.numeric(intToBits(as.numeric(run_ids[i,1])))), collapse=""))
}

不幸的是,我想要转换的数字范围高达1,600。 我曾尝试使用as.double,as.numeric来解决问题,但这些不起作用。

我错过了什么?

提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

您的代码经过小幅修正后仍然有效。

for(i in 1:length(x)){替换为for(i in run_id){

,即可获得所需的输出
run_id <- 1:1600
run_ids <- as.data.frame(run_id)
run_ids$bin <- 0
for (i in run_id){
  run_ids[i,2] <- as.numeric(paste(rev(as.numeric(intToBits(as.numeric(run_ids[i,1])))), collapse=""))
}
> tail(run_ids)
#     run_id         bin
#1595   1595 11000111011
#1596   1596 11000111100
#1597   1597 11000111101
#1598   1598 11000111110
#1599   1599 11000111111
#1600   1600 11001000000