bitwise {base} | R Documentation

## 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

`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.

### See Also

The logical operators, `!`, `&`, `|`, `xor`.

The classes `"octmode"` and `"hexmnode"` 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.

### Examples

    bitwAnd(15L, 7L)
    bitwOr(15L, 7L)
    bitwXor(15L, 7L)
    bitwXor(-1L, 1L)

    bitwShiftR(-1, 1:31) # shifts of 2^32-1 = 4294967295

[Package base version 3.3.2 Index]