
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.




 
-module(bitwise_operations).
 
-export([test/0]).
 
test() ->
   A = 255,
   B = 170,
   io:format("~p band ~p = ~p\n",[A,B,A band B]),
   io:format("~p bor ~p = ~p\n",[A,B,A bor B]),
   io:format("~p bxor ~p = ~p\n",[A,B,A bxor B]),
   io:format("not ~p = ~p\n",[A,bnot A]),
   io:format("~p bsl ~p = ~p\n",[A,B,A bsl B]),
   io:format("~p bsr ~p = ~p\n",[A,B,A bsr B]).
 