
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.




      number1% = &89ABCDEF
      number2% = 8
 
      PRINT ~ number1% AND number2% : REM bitwise AND
      PRINT ~ number1% OR number2%  : REM bitwise OR
      PRINT ~ number1% EOR number2% : REM bitwise exclusive-OR
      PRINT ~ NOT number1%          : REM bitwise NOT
      PRINT ~ number1% << number2%  : REM left shift
      PRINT ~ number1% >>> number2% : REM right shift (logical)
      PRINT ~ number1% >> number2%  : REM right shift (arithmetic)
      PRINT ~ (number1% << number2%) OR (number1% >>> (32-number2%)) : REM left rotate
      PRINT ~ (number1% >>> number2%) OR (number1% << (32-number2%)) : REM right rotate