Reputation: 550
~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
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