
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.




import extensions;
 
extension testOp
{
    bitwiseTest(y)
    {
        console.printLine(self," and ",y," = ",self.and(y));
        console.printLine(self," or ",y," = ",self.or(y));
        console.printLine(self," xor ",y," = ",self.xor(y));
        console.printLine("not ",self," = ",self.Inverted);
        console.printLine(self," shr ",y," = ",self.shiftRight(y));
        console.printLine(self," shl ",y," = ",self.shiftLeft(y));
    }
}
 
public program()
{
    console.loadLineTo(new Integer()).bitwiseTest(console.loadLineTo(new Integer()))
}