This behavior is inconsistent to it's counterpart bit shift left which never has to regard the flag in any operation and also any other language implementing this feature.
Code: Select all
Msgbox % ( ((1<<63)>>1) = (1<<62) )
Code: Select all
bitshiftright(value,bits)
{
if bits
value := ( value >> bits ) & 0xE777777777777777
return value
}