
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.




procedure main()
bitdemo(255,2)
bitdemo(-15,3)
end
 
procedure bitdemo(i,i2)
   write()
   demowrite("i",i)
   demowrite("i2",i2)
   demowrite("complement i",icom(i))     
   demowrite("i or i2",ior(i,i2))
   demowrite("i and i2",iand(i,i2))
   demowrite("i xor i2",ixor(i,i2))
   demowrite("i shift " || i2,ishift(i,i2))
   demowrite("i shift -" || i2,ishift(i,-i2))
   return
end
 
procedure demowrite(vs,v)
return write(vs, ": ", v, " = ", int2bit(v),"b")
end