
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.




defmodule Bitwise_operation do
  use Bitwise
 
  def test(a \\ 255, b \\ 170, c \\ 2) do
    IO.puts "Bitwise function:"
    IO.puts "band(#{a}, #{b}) = #{band(a, b)}"
    IO.puts "bor(#{a}, #{b}) = #{bor(a, b)}"
    IO.puts "bxor(#{a}, #{b}) = #{bxor(a, b)}"
    IO.puts "bnot(#{a}) = #{bnot(a)}"
    IO.puts "bsl(#{a}, #{c}) = #{bsl(a, c)}"
    IO.puts "bsr(#{a}, #{c}) = #{bsr(a, c)}"
    IO.puts "\nBitwise as operator:"
    IO.puts "#{a} &&& #{b} = #{a &&& b}"
    IO.puts "#{a} ||| #{b} = #{a ||| b}"
    IO.puts "#{a} ^^^ #{b} = #{a ^^^ b}"
    IO.puts "~~~#{a} = #{~~~a}"
    IO.puts "#{a} <<< #{c} = #{a <<< c}"
    IO.puts "#{a} >>> #{c} = #{a >>> c}"
  end
end
 
Bitwise_operation.test