按位运算

基本类型 / 数字 / 整型

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")