You said
1<<-1
<< is the bit shift left operator
so when you pass it a negative value, it should logically shift right

=> 1<<-1 = 1>>1
but 1>>1 in binary: 00000001>>1
Because the left bits are filled with 0 when shifting right, 1>>1 will be 0
Idea:
Register both of them and decide when the public is run
__________________