
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.




Red [Source: https://github.com/vazub/rosetta-red]
 
a: 10
b: 2
 
print [
	pad "a =" 10 a newline
	pad "b =" 10 b newline
	pad "a AND b:" 10 a and b newline
	pad "a OR b:" 10 a or b newline
	pad "a XOR b:" 10 a xor b newline
	pad "NOT a:" 10 complement a newline
	pad "a >>> b:" 10 a >>> b newline
	pad "a >> b:" 10 a >> b newline
	pad "a << b:" 10 a << b newline
	; there are no circular shift operators in Red
]
 