Ou seja, a melhor maneira de aprender sobre operadores bit a bit é olhar os bits.
Não os valores decimais.
ViniGodoy
Para entender pq o negativo de 15 é -16 e não -15, estude sobre complemento de 2.
Na verdade, para que os números negativos e positivos fossem simétricos, deveria haver o número -0 e +0.
Considere que o primeiro bit representa o sinal:
1000 0000 representaria -0 e
0000 0000 representaria +0.
Optou-se então por retirar a forma negativa do 0 e usa-la para representar outro valor. No caso, um número negativo a mais. Por isso é que variáveis como byte vão de -128 até 127, e não -127 até 127.
T
thingol
http://en.wikipedia.org/wiki/Signed_number_representations indica que em alguns computadores antigos (IBM 7090, um predecessor dos mainframes) existia essa representação “sinal + magnitude” - o primeiro bit seria o sinal e o resto seria o valor - mas como ela era mais desajeitada para fazer contas (tradução: gastava mais hardware), foi substituída rapidamente pelo complemento de 2.
Mas os números de ponto flutuante realmente usam sinal + magnitude porque ela é melhor para fazer contas de multiplicação e divisão. O complemento de 2 é mais útil para fazer adições e subtrações.