Actually int8_t is =-128 to 127
If you include the standard header , C++ defines alot of integer types that are more specific:
int8_t = -127 to +127
As has been mentioned, on two's complement architectures, yes. 1's complement architectures do exist (although more "did"), having the advantage of slightly simpler circuitry. For practical purposes, nowadays, on commodity hardware, one generally assumes two's complement.