Skip to content
Prev 157208 / 398503 Next

Conversion to Binary (base2)

Since I have to teach number base conversion within 2 weeks,
I could not resist:

numberInBase <-  function(number,base){
  numberInBaseRecur<-function(number,base){
    lastDigit<-function(number,base) number %% base
    if (number == 0) result <- c(0)
    else result <- c(numberInBaseRecur(number %/% base,base),
                     lastDigit(number,base))
    result
  }
  result <- numberInBaseRecur(number,base)
  while (result[1]== 0 && length(result)>1) result <- result[-1]
  result
}

makeDigitSeq <- function(digiseq){
  digits <- c(as.character(0:9),LETTERS)
  paste(sapply(digiseq,function(x)digits[x+1]),collapse="")
}


makeDigitSeq(numberInBase(21,2))
probably does what you want.

This works up to base 36.
Jason Thibodeau wrote: