Bitwise Operations

Continuing our look at binary operations I decided I wanted to be able to perform the bitwise operations – band, bor, bxor and get the results back as binary.  We already have operators for these actions in PowerShell so its just a matter of wrapping the appropriate conversion code around them.  I’ll show the code for band here.  The other two are very similar and will be available in the module when I post it on codeplex.

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
function Get-BinaryAND {
param(
    [string]$inputvalue1,
    [string]$inputvalue2,
    [switch]$showsum
)
    if ($inputvalue1.length -ne $inputvalue2.length){Throw "Input values must be same length"}

## check valid binary numbers
## move this to a validation test
    Test-Binary $inputvalue1
    Test-Binary $inputvalue2

    $res = (ConvertTo-Decimal -inputvalue $inputvalue1 -binary) `
         -band (ConvertTo-Decimal -inputvalue $inputvalue2 -binary)
    $ans = (ConvertTo-Binary -inputvalue $res).PadLeft($inputvalue1.length, "0")
    if ($showsum) {
        $inputvalue1
        $inputvalue2
        "-" * $inputvalue1.length
        $ans
    }
    else {
        $ans
    }
}

 

Two binary numbers as input as we saw in the addition\subtraction functions.  I have changed the names to be consistent across the module. Perform the standard checks and then convert them to decimal and perform the band. The result is converted back to binary – padding left with zeros if required.

I decided to show the inputs and output if required – may be a good learning tool to understand this.

 

usage is straight forward

PS> Get-BinaryAND -inputvalue1 1010 -inputvalue2 0011
0010
PS> Get-BinaryAND -inputvalue1 10111010 -inputvalue2 01110011 -showsum
10111010
01110011
--------
00110010

The module contents stand at

ConvertTo-Binary
ConvertTo-Decimal
ConvertTo-Hex
Get-BinaryAND
Get-BinaryDifference
Get-BinaryOR
Get-BinarySum
Get-BinaryXOR
Test-Binary
Test-Hex

I need to add a couple of functions to do hex addition and subtraction and then its done

Leave a Reply