# bitwise

0th

Percentile

##### Bitwise Logical Operations

Logical operations on integer vectors with elements viewed as sets of bits.

Keywords
logic
##### Usage
bitwNot(a)
bitwAnd(a, b)
bitwOr(a, b)
bitwXor(a, b)bitwShiftL(a, n)
bitwShiftR(a, n)
##### Arguments
a, b

integer vectors; numeric vectors are coerced to integer vectors.

n

non-negative integer vector of values up to 31.

##### Details

Each element of an integer vector has 32 bits.

Pairwise operations can result in integer NA.

Shifting is done assuming the values represent unsigned integers.

##### Value

An integer vector of length the longer of the arguments, or zero length if one is zero-length.

The output element is NA if an input is NA (after coercion) or an invalid shift.

The logical operators, !, &, |, xor. Notably these do work bitwise for raw arguments.

The classes "octmode" and "hexmode" whose implementation of the standard logical operators is based on these functions.

Package bitops has similar functions for numeric vectors which differ in the way they treat integers $2^{31}$ or larger.

• bitwNot
• bitwAnd
• bitwOr
• bitwXor
• bitwShiftL
• bitwShiftR
##### Examples
library(base) # NOT RUN { bitwNot(0:12) # -1 -2 ... -13 bitwAnd(15L, 7L) # 7 bitwOr (15L, 7L) # 15 bitwXor(15L, 7L) # 8 bitwXor(-1L, 1L) # -2 ## The "same" for 'raw' instead of integer : rr12 <- as.raw(0:12) ; rbind(rr12, !rr12) c(r15 <- as.raw(15), r7 <- as.raw(7)) # 0f 07 r15 & r7 # 07 r15 | r7 # 0f xor(r15, r7)# 08 bitwShiftR(-1, 1:31) # shifts of 2^32-1 = 4294967295 # } 
Documentation reproduced from package base, version 3.4.3, License: Part of R 3.4.3

### Community examples

Looks like there are no examples yet.