Nits
Nits

Reputation: 550

How ~(tilde)Infinity becomes -1

~Infinity my question is how it evaluate to -1.

~Infinity= -1

console.log(~Infinity);

because

Infinity+Infinity=Infinity

console.log(Infinity+Infinity)

or

Infinity-Infinity = NaN

console.log(Infinity-Infinity)

How ~Infinity output is coming to -1;

Upvotes: 2

Views: 286

Answers (1)

Pointy
Pointy

Reputation: 413720

In IEEE 754 floating point, the Infinity constant is represented by a value with all the fraction bits set to 0. When that's coerced to a 32-bit integer value in calculating the bitwise complement (the ~ unary operator), you get just zero, so the complement is all 1 bits, or -1.

Positive infinity is:

01111111111100000000000000000000000000000000000000000000000000000

(give or take a zero). The sign bit is 0, the exponent is all 1 bits, and the mantissa is all zeros.

Upvotes: 6

Related Questions