In C/C++ and some other language (e.g. Java), integers r stored in the memory using 2's complement notation.
For positive integers, their 2's complement notation is of no difference from their binary representation.
Negative integers r slightly more complicated. To achieve their 2's complement notation, u can:
1. get the binary representation of its absolute value;
2. add 1 to that representation.
Of course, there're restrictions of limited memory space.
In this way, negative integers r stored in the memory in quite a same way as positive ones.
e.g. 1111 1111 = -1;
However, for a unsigned integer, it is assumed that no negative integers r stored, i.e. all the numbers r stored using their binary representation. In this case, 1111 1111 = 255.
完全原创,看不懂的话补充说明或者叫我翻译.