
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.




 ╔═══════════════════════════════════════════════════════════════════════════════════════╗
 ║ Since REXX stores numbers  (indeed, all values)  as characters, it makes no sense to  ║
 ║ "rotate"  a value,  since there aren't any boundaries for the value.    I.E.:  there  ║
 ║ isn't any 32─bit word  "container"  or  "cell"  (for instance)  to store an integer.  ║
 ║                                                                                       ║
 ║ Furthermore, since REXX numbers can be arbitrary precision,  the concept of rotating  ║
 ║ a number has no meaning.                                                              ║
 ╚═══════════════════════════════════════════════════════════════════════════════════════╝
