Rev 72302 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/base/man/octmode.Rd% Part of the R package, https://www.R-project.org% Copyright 2016-2017 R Core Team% Distributed under GPL 2 or later\name{bitwise}\alias{bitwNot}\alias{bitwAnd}\alias{bitwOr}\alias{bitwXor}\alias{bitwShiftL}\alias{bitwShiftR}\title{Bitwise Logical Operations}\description{Logical operations on integer vectors with elements viewed as sets of bits.}\usage{bitwNot(a)bitwAnd(a, b)bitwOr(a, b)bitwXor(a, b)bitwShiftL(a, n)bitwShiftR(a, n)}\arguments{\item{a, b}{integer vectors; numeric vectors are coerced to integer vectors.}\item{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 \code{NA}.Shifting is done assuming the values represent unsigned integers.}\value{An integer vector of length the longer of the arguments, or zerolength if one is zero-length.The output element is \code{NA} if an input is \code{NA} (aftercoercion) or an invalid shift.}\seealso{The logical operators, \code{\link{!}}, \code{\link{&}},\code{\link{|}}, \code{\link{xor}}.Notably these \emph{do} work bitwise for \code{\link{raw}} arguments.The classes \code{"\link{octmode}"} and \code{"\link{hexmode}"} whoseimplementation of the standard logical operators is based on thesefunctions.Package \CRANpkg{bitops} has similar functions for numeric vectors whichdiffer in the way they treat integers \eqn{2^{31}}{2^31} or larger.}\examples{bitwNot(0:12) # -1 -2 ... -13bitwAnd(15L, 7L) # 7bitwOr (15L, 7L) # 15bitwXor(15L, 7L) # 8bitwXor(-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 07r15 & r7 # 07r15 | r7 # 0fxor(r15, r7)# 08bitwShiftR(-1, 1:31) # shifts of 2^32-1 = 4294967295}\keyword{logic}