Add bit manipulation section.

This commit is contained in:
Oleksii Trekhleb
2018-06-27 17:19:20 +03:00
parent 36e0bfeb32
commit 792f4906df
10 changed files with 152 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
/**
* @param {number} number
* @param {number} bitPosition - zero based.
* @param {number} bitValue - 0 or 1.
* @return {number}
*/
export default function updateBit(number, bitPosition, bitValue) {
// Normalized bit value.
const bitValueNormalized = bitValue ? 1 : 0;
// Init clear mask.
const clearMask = ~(1 << bitPosition);
// Cleat bit value and then set it up to required value.
return (number & clearMask) | (bitValueNormalized << bitPosition);
}