Cuando asigna un valor negativo a una variable sin signo, utiliza el método de complemento a 2 para procesarla y, en este método, cambia todos los 0 a 1 y todos los 1 a 0 y luego le agrega 1. En su caso, está tratando con int, que es de 4 bytes (32 bits), por lo que intenta usar el método de complemento a 2 en un número de 32 bits, lo que hace que el bit superior se invierta. Por ejemplo:
┌─[student@pc]─[~]
└──╼ $pcalc 0y00000000000000000000000000000101 # 5 in binary
5 0x5 0y101
┌─[student@pc]─[~]
└──╼ $pcalc 0y11111111111111111111111111111010 # flip all bits
4294967290 0xfffffffa 0y11111111111111111111111111111010
┌─[student@pc]─[~]
└──╼ $pcalc 0y11111111111111111111111111111010 + 1 # add 1 to that flipped binarry
4294967291 0xfffffffb 0y11111111111111111111111111111011