[R-br] Função que transforma decimal em binario e vice-versa

Leonard de Assis assis.leonard em gmail.com
Terça Dezembro 20 09:40:13 BRST 2011


Claudio,

segue a função
eu adaptei de um código postado na lista R internacional (Coloquei
suporte a int64, pacote int64. Se não quiser usar deste jeito, basta
substituir as chamadas por as.integer)

integer2binary <- function(x, min.digits=floor(logb(max(as.integer(x)),
base = 2)) + 1) {
  xi <- int64::as.uint64(x)
    if(any(is.na(xi) | ((x-xi)!=0)))
        print(list(ERROR="x not integer", x=x))
   
  N <- length(x)
    xMax <- max(int64::as.uint64(x))
 
    ndigits <-max(min.digits,(floor(logb(xMax, base=2))+1))
    Base.b <- array(NA, dim=c(N, ndigits))
    for(i in 1:ndigits) {
        Base.b[, ndigits-i+1] <- (x %% 2)
        x <- (x %/% 2)
    }
    if(N ==1) Base.b[1, ] else Base.b
}

[]s
Leonard de Assis
assis <dot> leonard <at> gmail <dot> com


Em 19/12/2011 22:11, Claudio Carneiro escreveu:
> Olá todos,
>  
> Estou a um tempo à procura, porém sem sucesso, por uma função, que  já
> esteja disponivel no R, que transforme número decimal em binário, e
> uma que tranforme binário em decimal. Gostaria se vocês tem
> conhecimento de alguma?
>
> Grato desde já,
> /Claudio Roberto Carneiro/
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20111220/1e96d064/attachment.html>


Mais detalhes sobre a lista de discussão R-br