[R] Converting Decimal numbers into Binary
Paul Bernal
p@u|bern@|07 @end|ng |rom gm@||@com
Sat Dec 28 00:41:22 CET 2019
Thank you very much Rui.
Best regards!
El vie., 27 de diciembre de 2019 4:22 p. m., Rui Barradas <
ruipbarradas using sapo.pt> escribió:
> Hello,
>
> You forgot to cc the list, I'm replying all to have a complete thread so
> that others now and in the future can search similar problems they might
> encounter.
> The following function bin2dec works as expected.
>
>
> bin2dec <- function(x){
> s <- strsplit(x, "")
> s <- lapply(s, function(x){
> sum(as.integer(x)*2^((length(x) - 1):0))
> })
> unlist(s)
> }
>
>
> bin2dec("001100001111010101000011011110")
> #[1] 205344990
>
> b <- utf8ToBin("133m using ogP00PD;88MD5MTDww using 2D7k", out = "bin")
> bin2dec(b)
> # [1] 1 3 3 53 16 55 47 32 0 0 32 20 11 8 8 29 20 5 29 36
> #[21] 20 63 63 16 2 20 7 51
>
>
> Hope this helps,
>
> Rui Barradas
>
> Às 20:52 de 27/12/19, Paul Bernal escreveu:
> > Dear friend Rui,
> >
> > Hope you are doing well, thanks for the previous feedback,
> >
> > I have tried different things but have not been able to convert binary
> > numbers back to decimal, to test if the output is correct, I am taking
> > the binary sequence = "001100001111010101000011011110" as a string, and
> > this should give the following value (after converting back to decimal)
> > = 205,344,990
> >
> > I have labeled my different attempts as (Attempt 1, ..., Attempt 3) but
> > none have worked (see the code below):
> >
> > library(stringi)
> > library(dplyr)
> > library(R.utils)
> >
> >
> > #dataset1 <- data.frame(maml.mapInputPort(1)) # class: data.frame
> >
> >
> > ascii_datformat <- utf8ToInt("133m using ogP00PD;88MD5MTDww using 2D7k")
> > ascii_datformat
> >
> > Base <- ascii_datformat - 48
> >
> > decy <- ifelse(Base > 40, Base-8, Base)
> >
> >
> > biny <- intToBin(decy)
> >
> > binyframe <- data.frame(biny)
> >
> > tbinyframe <- paste(t(binyframe[,1]), collapse="")
> >
> > binyframe
> > tbinyframe
> >
> > # Attempt 1
> >
> > bin2dec <- function(x)
> > {
> > x <- as.character(as.numeric(x))
> > b <- as.numeric(unlist(strsplit(x, "")))
> > pow <- 2 ^ ((length(b) - 1):0)
> > sum(pow[b == 1])
> > }
> >
> > # Attempt 2
> > #bin2dec.easy <- function(binaryvector) {
> > # sum(2^(which(rev(binaryvector)==TRUE)-1))
> > #}
> >
> > # Attempt 3
> >
> > #utf8ToBin <- function(x, out = c("ascii", "dec", "bin")){
> > # out <- match.arg(out)
> > # ascii_datformat <- utf8ToInt(x)
> > # Base <- ascii_datformat - 48
> > # Base <- ifelse(Base > 40, Base - 8, Base)
> > # Bin <- R.utils::intToBin(Base)
> > # switch (out,
> > # "ascii" = ascii_datformat,
> > # "dec" = Base,
> > # "bin" = Bin
> > # )
> > #}
> >
> >
> > z <- substr(tbinyframe, 9, 38)
> >
> > result <- bin2dec(z)
> > result
> >
> > Any guidance will be greatly appreciated,
> >
> > Best regards,
> >
> > Paul
> >
> > El vie., 27 dic. 2019 a las 12:31, Rui Barradas (<ruipbarradas using sapo.pt
> > <mailto:ruipbarradas using sapo.pt>>) escribió:
> >
> > Hello,
> >
> >
> > Your code and the answers provided, specially Marc's, led me to
> >
> >
> > utf8ToBin <- function(x, out = c("ascii", "dec", "bin")){
> > out <- match.arg(out)
> > ascii_datformat <- utf8ToInt(x)
> > Base <- ascii_datformat - 48
> > Base <- ifelse(Base > 40, Base - 8, Base)
> > Bin <- R.utils::intToBin(Base)
> > switch (out,
> > "ascii" = ascii_datformat,
> > "dec" = Base,
> > "bin" = Bin
> > )
> > }
> >
> > utf8ToBin("133m@", out = "ascii")
> > utf8ToBin("133m@", out = "dec")
> > utf8ToBin("133m@", out = "bin")
> >
> >
> > Hope this helps,
> >
> > Rui Barradas
> >
> > Às 16:30 de 27/12/19, Paul Bernal escreveu:
> > > Dear Jeff,
> > >
> > > Hope you are doing great. The link I provide below has the
> > results I am
> > > expecting. I am doing a test, trying to convert this string:
> > "133m using ogP00PD
> > > ;88MD5MTDww using 2D7k" into ascii numbers, then to decimal, and
> > ultimately, into
> > > binary. I am trying to recreate the results obtained in the link
> > below.
> > >
> > > http://www.it-digin.com/blog/?p=20
> > >
> > > Hope this answers your question.
> > >
> > > Thanks for any guidance you can provide,
> > >
> > > Cheers,
> > >
> > > Paul
> > >
> > > El vie., 27 dic. 2019 a las 11:18, Jeff Newmiller
> > (<jdnewmil using dcn.davis.ca.us <mailto:jdnewmil using dcn.davis.ca.us>>)
> > > escribió:
> > >
> > >> Your question is incomplete... what do you expect the result to
> be?
> > >>
> > >> Perhaps [1] is relevant?
> > >>
> > >> [1]
> > >>
> >
> https://stackoverflow.com/questions/52298995/r-binary-decimal-conversion-confusion-ais-data
> > >>
> > >> On December 27, 2019 7:42:36 AM PST, Paul Bernal
> > <paulbernal07 using gmail.com <mailto:paulbernal07 using gmail.com>>
> > >> wrote:
> > >>> Dear friends,
> > >>>
> > >>> Hope you are all doing well. I need to find a way to convert
> ascii
> > >>> numbers
> > >>> to six digit binary numbers:
> > >>>
> > >>> I am working with this example, I converted the string to
> > ascii, and
> > >>> finally to decimal, but I am having trouble converting the
> decimal
> > >>> numbers
> > >>> into their six digit binary representation. The code below is
> > exactly
> > >>> what
> > >>> I have so far:
> > >>>
> > >>> ascii_datformat <- utf8ToInt("133m using ogP00PD;88MD5MTDww using 2D7k")
> > >>> ascii_datformat
> > >>>
> > >>> Base <- ascii_datformat - 48
> > >>>
> > >>> ifelse(Base > 40, Base-8, Base)
> > >>>
> > >>> x <- rev(intToBits(Base))
> > >>> dec2bin <- function(x) paste(as.integer(rev(intToBits(x))),
> > collapse =
> > >>> "")
> > >>> dec2bin
> > >>>
> > >>> any guidance will be greatly appreciated,
> > >>>
> > >>> Best regards,
> > >>>
> > >>> Paul
> > >>>
> > >>> [[alternative HTML version deleted]]
> > >>>
> > >>> ______________________________________________
> > >>> R-help using r-project.org <mailto:R-help using r-project.org> mailing list
> > -- To UNSUBSCRIBE and more, see
> > >>> https://stat.ethz.ch/mailman/listinfo/r-help
> > >>> PLEASE do read the posting guide
> > >>> http://www.R-project.org/posting-guide.html
> > >>> and provide commented, minimal, self-contained, reproducible
> code.
> > >>
> > >> --
> > >> Sent from my phone. Please excuse my brevity.
> > >>
> > >
> > > [[alternative HTML version deleted]]
> > >
> > > ______________________________________________
> > > R-help using r-project.org <mailto:R-help using r-project.org> mailing list
> > -- To UNSUBSCRIBE and more, see
> > > https://stat.ethz.ch/mailman/listinfo/r-help
> > > PLEASE do read the posting guide
> > http://www.R-project.org/posting-guide.html
> > > and provide commented, minimal, self-contained, reproducible code.
> > >
> >
>
[[alternative HTML version deleted]]
More information about the R-help
mailing list