  Free Academy Experience

Preparing for tech interviews?
Learn from the best instructors in the field.

Join Now!  # Bits and operations on it

Like other languages, JavaScript also supports bit-wise operations. In JavaScript, a number is stored as a 64-bit floating-point number but the bit-wise operation is performed on a 32-bit binary number i.e. to perform a bit-operation JavaScript converts the number into a 32-bit binary number (signed) and perform the operation and convert back the result to a 64-bit number.

BITWISE AND (&): When a bitwise AND is performed on a pair of bits, it returns 1 if both bits are 1.

`Example:  var x = 5; // 101 var y = 1; // 1 var z = x&y; So here, 1 will be stored in z`

BITWISE OR (|): When a bitwise OR is performed on a pair of bits, it returns 1 if atleast one of the bits is 1.

`Example:  var x = 5; // 101 var y = 1; // 1 var z = x|y; So here, 5 will be stored in z`

BITWISE XOR (^): When a bitwise XOR is performed on a pair of bits, it returns 1 if the bits are different.

`Example:  var x = 5; // 101 var y = 1; // 1 var z = x^y; So here, 4 will be stored in z`

BITWISE NOT(~): Its is a unary operator i.e. accepts single operands. It flips the bits i.e 0 becomes 1 and 1 becomes 0.

NOTE: JavaScript binary numbers are stored in two’s complement format. This means that a negative number is the bitwise NOT of the number plus 1.

`Example:  var x = 5; // 101 var z = ~x; So here, -6 will be stored in z`

(Zero Fill) Bitwise Left Shift (<<): One or more zero bits are pushed in from the right, and the leftmost bits fall off.

`Example:  var x = 5; // 00000000000000000000000000000101 var z = x<<1; // 00000000000000000000000000001010 So here, 10 will be stored in z`

(Sign Preserving) Bitwise Right Shift (>>): Copies of the leftmost bit are pushed in from the left, and the rightmost bits fall off.

`Example:  var x = -5; // 11111111111111111111111111111011 var z = x>>1; // 11111111111111111111111111111101 So here, -3 will be stored in z`

(Zero Fill) Right Shift (>>): One or more zero bits are pushed in from the left, and the rightmost bits fall off.

`Example:  var x = 5; // 00000000000000000000000000000101 var z = x>>1; // 00000000000000000000000000000010So here, 2 will be stored in z `

Try the following example in the editor below.

You are given an integer N, print the summation of N XOR (N OR (Negation N)).

Sample Input:

100

Sample Output:

-101 Hints
• Hints are not available for this problem