Why am I getting this binary shift error?

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?