bitwise-operation
TypeScript icon, indicating that this package has built-in type declarations

2.0.3 • Public • Published

Node.js: bitwise-operation

bitwise-operation is a JavaScript library that provides useful bitwise operation helpers without converting integer to an array.

Installation

Node.js npm install --save bitwise-operation

Require.js require(["bitwise"], ...

Require in Node var Bitwise = require('bitwise-operation');
Import in Node import { Bitwise } from "bitwise-operation";

Broser <script src="/node_modules/bitwise-operation/bitwise.js"></script>

Methods

Bitwise()

new Bitwise(value)

Create a bitwise object to chain operations.

Example:

import { Bitwise } from "bitwise-operation";

new Bitwise(0b1011);

var value = new Bitwise([1, 1, 0, 1]);
value.valueOf(); // 0b1011

new Bitwise("1011");

chain()

Bitwise.chain(value)

Create a bitwise object to chain operations.

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.chain(0b0100).and(0b1100).or(0b0010).valueOf();
// => 0b0110

not()

Bitwise.not(value)
Bitwise.chain(value).not()

Performs a logical NOT of this target bit set.

Truth table:

a NOT a
0 1
1 0

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.not(0b1010);
Bitwise.chain(0b1010).not().valueOf();

// => 0b0101

and()

Bitwise.and(...values)
Bitwise.chain(value).and(value)

Performs a logical AND of this target bit set with the argument bit set.

Truth table:

a b a AND b
0 0 0
0 1 0
1 0 0
1 1 1

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.and(0b0111, Bitwise(0b0101), 0b1100);

Bitwise.chain(0b0111).and(Bitwise(0b0101)).and(0b1100).valueOf();

// => 0b0100

nand()

Bitwise.nand(...values)
Bitwise.chain(value).nand(value)

Clears all of the bits in this BitSet whose corresponding bit is set in the specified BitSet.

Truth table:

a b a NAND b
0 0 1
0 1 1
1 0 1
1 1 0

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.nand(0b0010, 0b0110);

Bitwise.chain(0b0010).nand(0b0110).valueOf();

// => 0b1101

Alias: andNot()

or()

Bitwise.or(...values)
Bitwise.chain(value).or(value)

Performs a logical OR of this bit set with the bit set argument.

Truth table:

a b a OR b
0 0 0
0 1 1
1 0 1
1 1 1

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.or(0b0010, 0b0110);

Bitwise.chain(0b0010).or(0b0110).valueOf();

// => 0b0110

nor()

Bitwise.nor(...values)
Bitwise.chain(value).nor(value)

Performs a logical NOR of this bit set with the bit set argument.

Truth table:

a b a NOR b
0 0 1
0 1 0
1 0 0
1 1 0

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.nor(0b0010, 0b0110);

Bitwise.chain(0b0010).nor(0b0110).valueOf();

// => 0b1001

xor()

Bitwise.xor(...values)
Bitwise.chain(value).xor(value)

Performs a logical XOR of this bit set with the bit set argument.

Truth table:

a b a XOR b
0 0 0
0 1 1
1 0 1
1 1 0

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.xor(0b0010, 0b0110);

Bitwise.chain(0b0010).xor(0b0110).valueOf();

// => 0b0100

xnor()

Bitwise.xnor(...values)
Bitwise.chain(value).xnor(value)

Performs a logical XNOR of this bit set with the bit set argument.

Truth table:

a b a XNOR b
0 0 1
0 1 0
1 0 0
1 1 1

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.xor(0b0010, 0b0110);

Bitwise.chain(0b0010).xor(0b0110).valueOf();

// => 0b1011

Alias: nxor()

mask()

Bitwise.mask([fromIndex= 0,] toIndex)
Bitwise.chain(value).mask([fromIndex= 0,] toIndex)

Sets the bits not in the specified fromIndex (inclusive) to the specified toIndex (inclusive) to false.

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.mask(1, 5); // => 0b00011110

Bitwise.chain(0b1011011)
  .mask(1, 5) // => 0b00011110
  .valueOf();
// Equal to: Bitwise.chain(0b1011011).and(Bitwise.mask(1, 5)).valueOf()

// => 0b00011010

clear()

Bitwise.chain(value).clear([fromIndex= 0,] toIndex)

Sets the bits from the specified fromIndex (inclusive) to the specified toIndex (inclusive) to false.

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.chain(0b1011011).clear(1, 5).valueOf();

// => 0b1000001

length()

Bitwise.chain(value).length()

Returns the "logical size" of this Bitwise: the index of the highest set bit in the Bitwise plus one.

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.chain(0b1011011).length();

// => 7

Alias: size()

set()

Bitwise.chain(value).set(idx [, value = true])

Sets the bit at the specified index to the specified value (default true)

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.chain(0b0001).set(2).valueOf();

// => 0b0101

unset()

Bitwise.chain(value).set(idx)

Sets the bit at the specified index to false

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.chain(0b0101).unset(0).valueOf();

// => 0b0100

get()

Bitwise.chain(value).get(idx)

Returns the value of the bit with the specified index

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.chain(0b0001).get(0);

// => true

toggle()

Bitwise.toggle(value, ...idx)
Bitwise.chain(value).toggle(idx)

Sets the bit at the specified index to the complement of its current value.

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.toggle(0b0001, 1);

Bitwise.chain(0b0001).toggle(1).valueOf();

// => 0b0011

swap()

Bitwise.toggle(value, ...[idx1, idx2])
Bitwise.chain(value).swap(idx1, idx2)

Swap bits to index idx1 and idx2

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.swap(0b0101, [1, 2]);

Bitwise.chain(0b0101).swap(1, 2).valueOf();

// => 0b0011

equals()

Bitwise.chain(value).equals(value)

Compares this object against the specified object

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.chain(0b0101).equals(0b0111);

// => false

setValue()

Bitwise.chain(value).setValue(value)

Replaces the current value of the object with the new value

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.chain(0b0101).setValue(0b0111).valueOf();

// => 0b0111

setRange()

Bitwise.chain(value).setRange(fromIndex, toIndex )

Sets the bits from the specified fromIndex (inclusive) to the specified toIndex (inclusive) to true.

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.chain(0b0101).setRange(1, 2).valueOf();

// => 0b0111

unsetRange()

Bitwise.chain(value).unsetRange(fromIndex, toIndex )

Sets the bits from the specified fromIndex (inclusive) to the specified toIndex (inclusive) to false.

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.chain(0b0101).unsetRange(1, 2).valueOf();

// => 0b0001

toggleRange()

Bitwise.chain(value).toggleRange(fromIndex, toIndex )

Sets each bit from the specified fromIndex (inclusive) to the specified toIndex (inclusive) to the complement of its current value.

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.chain(0b0101).toggleRange(1, 2).valueOf();

// => 0b0011

copy()

Bitwise.chain(value).copy()

Cloning this Bitwise produces a new Bitwise that is equal to it.

Example:

import { Bitwise } from "bitwise-operation";

var a = Bitwise(0b0001);
var b = a;
var c = a.copy();

a.toggle(1);

a.valueOf(); // => 0b0011
b.valueOf(); // => 0b0011
c.valueOf(); // => 0b0001

Alias: clone()

valueOf()

Bitwise.chain(value).valueOf()

Return the current value of this Bitwise.

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.chain(0b0101).valueOf();

// => 0b0101

toString()

Bitwise.chain(value).toString()
Bitwise.chain(value).toString(length, separator)

Returns a string representation of this Bitwise.

Example:

import { Bitwise } from "bitwise-operation";

Bitwise.chain(0b0101).toString();

// => "0101"

Bitwise.chain(571).toString(4, " ");

// => "10 0011 1011"

toArray()

Bitwise.chain(value).toArray()

Returns a array representation of this Bitwise.

Example:

import { Bitwise } from "bitwise-operation";

var bitwise = Bitwise(571);

bitwise.toString(4, " ");
// => "10 0011 1011"

bitwise.toArray();
// => [ 1, 1, 0, 1, 1, 1, 0, 0, 0, 1 ]

cardinality()

Bitwise.chain(value).cardinality()

Returns the number of bits set to true in this Bitwise.

Example:

import { Bitwise } from "bitwise-operation";

var bitwise = Bitwise(571);

bitwise.toString(4, " ");
// => "10 0011 1011"

bitwise.cardinality();
// => 6

Package Sidebar

Install

npm i bitwise-operation

Weekly Downloads

12

Version

2.0.3

License

MIT

Unpacked Size

23.3 kB

Total Files

7

Last publish

Collaborators

  • relik