Оператор Bang (!) - это логический оператор not, обычно встречающийся в C, C ++ и C #, поэтому
!0 == 1
!1 == 0
Это основано на языковой характеристике того, что интерпретируется как истинное или ложное ... на более современных языках это было бы так
!false == true
!true == false
См. Деморган Закон о таблицах истинности ...