I have a large number:
let v = 204391396381585;
It is below the max safe int size of 2^53.
I do a binary shift:
v >>= 6;
I am expecting the result:
v === 3193615568462
ie a whole number which is the original v but divided by 2^6
Instead I get:
v === -28160434
Can anyone tell me what might be going wrong? Obviously it is something to do with the negative bit of a number, but can anyone tell me more?