
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.




def bitwise(a: Int, b: Int) {
  println("a and b: " + (a & b))
  println("a or b: " + (a | b))
  println("a xor b: " + (a ^ b))
  println("not a: " + (~a))
  println("a << b: " + (a << b)) // left shift
  println("a >> b: " + (a >> b)) // arithmetic right shift
  println("a >>> b: " + (a >>> b)) // unsigned right shift
  println("a rot b: " + Integer.rotateLeft(a, b)) // Rotate Left
  println("a rol b: " + Integer.rotateRight(a, b)) // Rotate Right
}