Categories

Binary Addition

We recently looked at converting numbers to binary and hex.  I then thought that I sometimes need to perform simple arithmetic in these bases so – binary addition.

We can use the functions we already have.  Convert a couple of numbers to binary

PS> $a = Convert-ToBinary -inputvalue 51
PS> $b = Convert-ToBinary -inputvalue 39
PS> $a
110011
PS> $b
100111

sum them by converting the binary back to decimal, performing the sum and converting back to binary.

PS> $c = Convert-ToBinary -inputvalue ((Convert-ToDecimal -inputvalue $a -binary) + (Convert-ToDecimal -inputvalue $b -binary))
PS> $c
1011010

A quick check on the result

PS> Convert-ToDecimal -inputvalue $c -binary
90

That works OK  but its a bit messy – too much typing. So I wrote Get-BinarySum

001
002
003
004
005
006
007
008
009
010
011
012
013
014
function Get-BinarySum {
param(
    [string]$value1,
    [string]$value2
)
## check valid binary numbers
## move this to a validation test
Test-Binary $value1
Test-Binary $value2

$sum = (Convert-ToDecimal -inputvalue $value1 -binary) + (Convert-ToDecimal -inputvalue $value2 -binary)

Convert-ToBinary -inputvalue $sum
}

 

Get the two binary numbers – test that they are binary.  Test-Binary is a helper function created from the code used in Convert-ToDecimal

The sum is performed by converting each binary to a decimal, summing them and converting the result back to a binary.

Bingo.  This forms the framework for other functions.

Leave a Reply