How come performing the unary NOT (~) opertion on int x = 0 gives the value of -1 and not a saturated int value?