a <- 5L # 0101
b <- 6L # 0110
# And
c1 <- bitwAnd(a, b) # 0100
# c1 = 4
# Or
c2 <- bitwOr(a, b) # 0111
# c2 = 7
# Xor
c3 <- bitwXor(a, b) # 0011
# c3 = 3
# Shift right
c4 <- bitwShiftR(a, 1L) # 0010
# c4 = 2
# Shift left
c5 <- bitwShiftL(b, 1L) # 1100
# c5 = 12
# Bits inversion
c6 <- bitwNot(b)
# c6 = -7
# A mask keeps 8 bits
c7 <- bitwAnd(bitwNot(b), 255L) # 11111001
# c7 = 249
# Trap: & is the logical and, not bitwise
c8 <- a & b
# c8 = TRUE
cat("c1 =", c1, "\n")
cat("c2 =", c2, "\n")
cat("c3 =", c3, "\n")
cat("c4 =", c4, "\n")
cat("c5 =", c5, "\n")
cat("c6 =", c6, "\n")
cat("c7 =", c7, "\n")
cat("c8 =", c8, "\n")