javascript - Why doesn't the "|" operator work for large values? -


i looking @ this question how efficiently check if value integer. 1 answer recommended using n === (n|0) quick rounding via | operator. on whim, decided test number.max_value. despite fact should integer (i think?), test came false.

it came false number.max_safe_integer, decided test other large numbers , found following:

number.max_value | 0           --> 0 number.max_safe_integer | 0   --> -1 number.max_safe_integer/2 | 0 --> -1 number.max_safe_integer/8 | 0 --> -1 1234567890 | 0                --> 1234567890  

i'm not sure | operator doing internally, doesn't seem safe on max_safe_integer. why case?

while true max_safe_integer integer... it's integer in double-precision float format, ie. 53 bits long.

meanwhile, bitwise operators work on 32-bit integers.

i think can see going ;)


Comments

Popular posts from this blog

javascript - jquery or ashx not working -

opencv - DataType<cv::detail::deriv_type>::depth what is it used for -

python 3.x - Mapping specific letters onto a list of words -