Confusing with bitwise NOT operator
I don't know whether anyone pay attention with bitwise logical NOT operator, but I am confusing with this.
For example, I want to use NOT operator with an integer variable which has value 1, this means (let me take 8 bits instead of 4 bytes) :
If we run a program for this problem, we get -2 which is not equal to 1111 1110 at all
The thing that I know is that after 1 is converted to 1's complement, the result is converted back to 2's complement and keep the MSB bit unchanged as the sign bit, that's how we get -2. But why is it like that? Does this have any thing related to performance purpose or it's the rule of representing binary number in form of machine code? :(
Thanks and pardon my ignorance about the very basic thing!