a = 5 # 0101
b = 6 # 0110
# And
c1 = a & b
# c1 is 4 (0100)
# Or
c2 = a | b
# c2 is 7 (0111)
# Xor
c3 = a ^ b
# c3 is 3 (0011)
# shift right
c4 = a >> 1
# c4 is 2 (0010)
# shift left
c5 = b << 1
# c5 is 12 (1100)
# bits inversion
c6 = ~b
# c6 is -7 (..1001)
puts "c1 is #{'%.d' % c1}: #{'%.04b' % c1}"
puts "c2 is #{'%.d' % c2}: #{'%.04b' % c2}"
puts "c3 is #{'%.d' % c3}: #{'%.04b' % c3}"
puts "c4 is #{'%.d' % c4}: #{'%.04b' % c4}"
puts "c5 is #{'%.d' % c5}: #{'%.04b' % c5}"
puts "c6 is #{'%.d' % c6}: #{'%.04b' % c6}"