
Basic Data Operation

This is a basic data operation. It represents a fundamental action on a basic data type.
You may see other such operations in the Basic Data Operations category, or:


Integer Operations
Arithmetic |
Comparison
Boolean Operations
Bitwise |
Logical
String Operations
Concatenation |
Interpolation |
Comparison |
Matching
Memory Operations
Pointers & references |
Addresses




Task

Write a routine to perform a bitwise AND, OR, and XOR on two integers, a bitwise NOT on the first integer, a left shift, right shift, right arithmetic shift, left rotate, and right rotate.

All shifts and rotates should be done on the first integer with a shift/rotate amount of the second integer.

If any operation is not available in your language, note it.




bitwise(255, 5)
Func bitwise($a, $b)
  MsgBox(1, '', _
    $a & " AND " & $b & ": " & BitAND($a, $b) & @CRLF & _
    $a & " OR " & $b & ": " & BitOR($a, $b) & @CRLF & _
    $a & " XOR " & $b & ": " & BitXOR($a, $b) & @CRLF & _
    "NOT " & $a & ": " & BitNOT($a) & @CRLF & _
    $a & " SHL " & $b & ": " & BitShift($a, $b * -1) & @CRLF & _
    $a & " SHR " & $b & ": " & BitShift($a, $b) & @CRLF & _
    $a & " ROL " & $b & ": " & BitRotate($a, $b) & @CRLF & _
    $a & " ROR " & $b & ": " & BitRotate($a, $b * -1) & @CRLF )
EndFunc