ok... I just had to re-learn twos compliment (it's been a few years). but I'm glad to say that I can still do it on paper!
you know how two's compliment works? (I'll explain for anyone that doesn't).
the most significant bit is the signed bit. (SB)0000000
(0)xxxxxxx = positive (whatever the seven last bits are)
(1)xxxxxxx = negative (whatever the last 7 bits are after conversion).
I'll use 4 bit numbers to make it a bit simpler.
Code:
positive negative
0000 = 0 0000 = 0
0001 = 1 1111 = -1
0010 = 2 1110 = -2
0011 = 3 1101 = -3
0100 = 4 1100 = -4
0101 = 5 1011 = -5
0110 = 6 1010 = -6
0111 = 7 1001 = -7
1000 = -8
to convert from a two's compliment number to a positive number you need to 'flip all the bits' (change 1 to 0 and 0 to 1), then add 1
e.g -3 = 1101
change that to 0010.
then add 1
0011
-7 = 1001
= 0110
=0111 = 7
got it? (if not then say so. I'll try to explain a bit better, also try writing it out on paper and practising a bit with smaller numbers first).
so let's look at the numbers that you have
11010101 + 01101011 = ???????
11010101 => 00101010 => 00101011 = 43 (1 + 2 + 8 + 32)
e.g 11010101 = -43
01101011 = 107 (1 + 2 + 8 + 32 + 64) (it is positive so no need for a conversion)
-43 + 107 = 64 = 01000000
so my head agrees with your calculator.
Now this is where it get's a bit more interesting
00101011 + 01101011 = 10010110 (-106 Dec.)
00101011 = 43 (1+2+8+32)
01101011 = 107 (1+2+8+32+64)
43 + 107 = 150 = (128+16-4-2) = (10010110)
AND you are correct that 10010110 = -106
10010110 => 01101001 => 01101010 = (2+8+32+64 = 106)
Basically in order to use positive integers over 127 AND use negative numbers (so you need a signed bit) you can't use 8bit integers, you have to move to 16 bit.
what you have when trying to write 150, but you actually write -106 is an overflow error.
to go off on a tangent, this is why 32bit computers can only access a certain amount of ram, you can't count higher than the address space allows.
this is why old hard disks used to have a 127GB limit.
and why windows XP (before the patch to allow big disk support) has a 127GB limit on disks.
it's all to do with the amount of bits used to write down a number.
anyway... back to your question.
you did 43 + 107 (which does equal 150)
what you should have done
(minus)43 + 107.
which does, in either base 2 (binary) or base 10 (decimal) [or any other base]
equal 64