Personally, I stick to the first option for the option "equal to zero or not."
For the integer sign, I would use Math.Sign and suggested that the JIT compiler is going to embed it - testing this assumption with benchmarks if it turns out to be a potential bottleneck.
, - . - . , ... , 5 , , Int32 (int).
EDIT: , , :
int y = x > 0 ? 1 : x;
.
-, .
, . , , .