If you include the standard header , C++ defines alot of integer types that are more specific:
int8_t = -127 to +127
Actually int8_t is =-128 to 127
Whoops, you're right. No point wasting a space for -0 is there?
Having a negative zero could also introduce the need for different hardware paths for signed and unsigned arithmetic. One major advantage of two's complement notation is that signed and unsigned are exactly the same at hardware level. For addition, subtraction, and multiplication, anyway.