>>Почему -1 превращается в 1?
Это - фича. Когда сетитится 0 то и возвращается 0. Если сетится любое другое число не равное 0, то возвращается 1.