【问题标题】:How to get 0-padded binary representation of an integer in R language如何在R语言中获得整数的0填充二进制表示
【发布时间】:2020-05-21 23:40:26
【问题描述】:

如何在 R 中生成一个函数,将整数转换为长度为 K 的二进制向量,例如,如果我有整数 n=3 且长度为 K= 7

输出是 0000011? 我生成了这个函数,但我不知道如何获得 0 填充的二进制表示:

convert_to_b <- function(n) 
{
  if(n > 1) {
  convert_to_b(as.integer(n/2))
  }  
  cat(n %% 2)
 }

【问题讨论】:

  • 建议:编辑您的帖子标题以在标题中包含编程语言,这可能会提高您获得答案的机会。

标签: r binary integer


【解决方案1】:

R.utils 包有函数intToBin() 可以与sprintf() 组合以左填充结果。

convert_to_b <- function(n, K)
{
  n <- R.utils::intToBin(n)
  if (K < nchar(n))
    K <- nchar(n)
  sprintf("%0*d", K, as.integer(n))
}

convert_to_b(3, 7)
[1] "0000011"

【讨论】:

    【解决方案2】:

    一个选项是使用intToBits:

    convert_to_b <- function(n, K) {
        x <- head(substr(intToBits(n), 2L, 2L), K)
        paste(rev(x), collapse="")
    }
    convert_to_b(3, 7)
    #[1] "0000011"
    

    【讨论】:

      猜你喜欢
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-04
      • 2021-10-01
      相关资源
      最近更新 更多