The bit is a basic unit of information in information theory, computing.

📦 Node.js,
🌐 Web,
📜 Files,
📰 Docs,
📘 Wiki.

The concept of a **bit**, which stands for *binary digit*, has been a
fundamental unit of information in the fields of information theory and
computing. Bitwise operations are used to manipulate and process data at the bit
level, and these operations are *crucial for efficient programming* in a variety
of domains, such as computer graphics and cryptography. JavaScript converts a
`Number`

(a *64-bit floating* *point number*) to a *32-bit integer* when bitwise
operators (such as `|`

) are applied. All bitwise operations are performed on
**32-bit integers**. This package includes bit twiddling hacks by *Sean Eron*
*Anderson* and many others.

This package is available in *Node.js* and *Web* formats. To use it on the web,
simply use the `extra_bit`

global variable after loading with a `<script>`

tag from the jsDelivr CDN.

Stability: Experimental.

```
const xbit = require('extra-bit');
// import * as xbit from "extra-bit";
// import * as xbit from "https://unpkg.com/extra-bit/index.mjs"; (deno)
xbit.count(7);
// → 3 (111 ⇒ 3)
xbit.parity(8, 2);
// → 2 (10,00 ⇒ 10)
xbit.swap(6, 1, 0);
// → 5 (110 ⇒ 101)
xbit.reverse(0xFFFF0000);
// → 65535 (0x0000FFFF)
xbit.signExtend(15, 4);
// → -1
```

## Index

Property | Description |
---|---|

get | Get bits at specified index. |

getAs | Get bits as per mask. |

set | Set bits at specified index. |

setAs | Set bits as per mask. |

toggle | Toggle bits at specified index. |

toggleAs | Toggle bits as per mask. |

swap | Swap bit sequences at specified indices. |

scan | Find index of first set bit from LSB. |

scanReverse | Find index of first set bit from MSB. |

count | Count bits set. |

parity | Calculate n-bit parity. |

rotate | Rotate bits by a certain amount. |

reverse | Reverse all bits. |

merge | Merge bits as per mask. |

interleave | Interleave bits of two int16s. |

signExtend | Sign extend variable bit-width integer. |