Why it's $2^8-127$, not $2^8-(-127)$ when "two's complement of $a$" is $2^n-a$ in binary notation? "Table 2.5.1 Powers of 2
$$\begin{array} {|c|c|c|c||c|}
\hline
\text {Power of 2} & 2^{10}& 2^9 & 2^8 & 2^7& 2^6&2^5 &2^4 &2^3  &2^2 &2^1 &2^0 \\ \hline
2 & 1024 & 512 & 256 & 128 & 64 & 32 & 16 & 8 & 4 & 2 & 1\\ \hline
\end{array} $$"
"Definition Given a positive integer a, the two's complement of a relative to a fixed bit length n is the n-bit binary representation of $2^n-a$"
p. 84 
I don't understand the last five rows in Table 2.5.2, the above definition says the two's complement of a positive integer, but the below shows the complement of a negative integer, and I don't understand why negative integer $a$ becomes $-a$ unlike the definition $2^n-a$, for example one of the five rows, why it's $2^8-127$, not $2^8-(-127)$?  
"Table 2.5.2 $$\begin{array} {|c|c|c|c||c|}
\hline
Integer & \begin{array}{c}\text {8-Bit Representation}\\\text{(ordinary 8-bit binary}\\\text{ if nonnegative or 8-bit two's}\\\text{complement of absolute value if negative)}\end{array} & \begin{array}{c}\text {Decimal form of}\\\text{Two's complement}\\\text{for Negative Integers)}\end{array} \\ \hline
127 & 01111111 &   \\
126 & 01111110 &   \\
. & . &   \\
. & . &   \\
. & . &   \\
2 & 00000010 &   \\
1 & 00000001 &   \\
0 & 00000000 &    \\
-1 & 11111111 & 2^8-1   \\
-2 & 11111110 & 2^8-2  \\
. & . &   \\
. & . &   \\
. & . &   \\
-127 & 10000001 & 2^8-127\\
-128 & 10000000 & 2^8-128\\ \hline
\end{array} $$ p.87"
Source: Discrete Mathematics with Applications by Susanna Epp
 A: Taking two's complement implies inversing a number ie binary digits ie if $0$ then $1$ and vice -versa and adding $1$ to LSB so binary $8$ -bit representation of $1$ is $00000001$ so taking inverse we get $11111110$ and adding $1$ we get $11111111$  if on subtraction the answer is negative then its in the form of 2's complement and if extra bit is generated its positive and we discard it 
A: For simplicity suppose we have 4-bit integer then the range of nonnegative values are $[0,2^{4}-1]$. Now, what if we want to represent the signed integers, both +ve and -ve, using the same resource?
We know that $-1>-2>-3>\cdots>-15$ so in this range $-1=15>-2=14>-3=13>\cdots>-15=1$. But this raises the confusion whether we are taking the +ve or -ve value. Therefore, two's complement along with other benefits is being used to resolve this confusion by reserving one of the bits, usually most significant bit, as sign bit. Definitely the range of values will change with the sign bit but number of possible values remains same.
Let's do an example if $a=-7$ then it 2's complements should be $7$ and in binary they are $-7=1001$ if we ignoring the sign bit, then $1001=9$ and $7=0111$
Now, you can apply this to your example and I hope that things will be clearer.
A: Twos complement is a way to represent negative values without actually storing a negative sign. Some other systems like Minifloat or IEEE 32-bit use an explicit sign bit which is easier to understand, but twos complement does not. It has other strengths - if you add 3.5 and -3.5 in binary twos complement you get zero :-) I tell my students to think about an old analogue odometer ( it measures the mileage in a car - you may need to translate that into your local language!). If you wind it back from a positive value (subtracting numbers) eventually you get to zero. Wind any further and you get 99999 then 99998 to represent -1 and -2 etc. Twos complement is like a binary odometer. So -1 is found by winding back from 0000 to 1111 (in 4-bit). -2 is then 1110 and -3 is 1101. If you add 1 to 1111 you get 0000 : the carried 1 is dropped off the left end. Likewise for adding 10 to 1110.
Now to your actual question about why we get the twos-complement for -127 by subtracting +127 from 2^8. A twos-complement value like 1101=-3 is really +13 but the program reading it knows that a value starting with a 1 is meant to be read as a negative so it subtracts 13 from 2^4=16 and gets 3. Then it calls that -3 because it knows it's negative. Or it might as well do 13-16=-3 - it doesn't matter. The process of subtracting from the power of 2 one higher than the most significant bit (2^8 for 8-bit etc.) is the mathematical equivalent of winding back the odometer. It is like getting -17 on the 5-digit odometer by subtracting +17 from 100000: 100000-17=99983.
In the 8-bit table you quote - the bit representing 2^8 is in the ninth position. So 2^8-127 is 100000000 - 01111111 = 10000001 as per the table. In the column "decimal form" I think she is just showing you what the value is in non-twos-complement form. That 10000001 really is +129 but it starts with a 1 and the system knows it's twos-complement so it understands it as -127. In a twos-complement system it will behave as -127. 2^8-1 does equal 255 - you're not going mad! but the system understands 11111111 to mean -1 in twos-complement form.
