# [R] Converting binary number to in Two´s complement representation

Paul Bernal p@u|bern@|07 @end|ng |rom gm@||@com
Mon Jan 20 15:36:20 CET 2020

```Dear friend Rui,

Hope you are doing great, thanks for your kind feedback. The challenge I
currently have at hand is to decode AIS messages and obtain latitude and
longitude values from those.

So basically, I want to accomplish something like in the example below. I
want to convert this binary number (10110010) into the two´s complement
representation, there is the logic they are using for that. Since longitude
ranges from
Example of conversion to decimal of a signed binary number in two's
complement representation

Let's convert to decimal the following signed binary number: 10110010
10110010 = -1×27 + 0×26 + 1×25 + 1×24 + 0×23 + 0×22 + 1×21 + 0×20 = -128 +
32 + 16 + 2 = -78.

El lun., 20 ene. 2020 a las 7:22, Rui Barradas (<ruipbarradas using sapo.pt>)
escribió:

> Sorry, missunderstood the problem.
> Here it goes:
>
> fun <- function(x){
>    res <- sapply(x, function(y){
>      if(nchar(y) %% 8 != 0 || substr(y, 1, 1) == "0"){
>        strtoi(y, base = 2)
>      }else{
>        y <- unlist(strsplit(y, ""))
>        -sum((y != "1")*2^((length(y) - 1):0)) - 1
>      }
>    })
>    unname(res)
> }
>
> fun("10110010")
> fun("10000000")
> fun(c("01000000", "01111111", "10110010", "10000000"))
>
>
> Hope this helps,
>
>
> Às 11:38 de 20/01/20, Rui Barradas escreveu:
> > Hello,
> >
> > Is this what you want?
> >
> >
> > x <- "10110010"
> > strtoi(x, base = 2)
> > #[1] 178
> >
> >
> > Hope this helps,
> >
> >
> > Às 16:31 de 16/01/20, Paul Bernal escreveu:
> >> Dear friends,
> >>
> >> How can I convert the following binary number in two´s complement
> >> representation in R?
> >>
> >> 10110010
> >>
> >> Any help and/or guidance will be greatly appreciated,
> >>
> >> Best regards,
> >>
> >> Paul
> >>
> >>     [[alternative HTML version deleted]]
> >>
> >> ______________________________________________
> >> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >> https://stat.ethz.ch/mailman/listinfo/r-help
> >> http://www.R-project.org/posting-guide.html
> >> and provide commented, minimal, self-contained, reproducible code.
> >>
> >
> > ______________________________________________
> > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > https://stat.ethz.ch/mailman/listinfo/r-help