Bueno, pues me prestaron un libro de C++ y estaba leyendo que los números enteros que caben en un byte van del  -128 al 127, debido a que 1 byte contiene 8 bits. Esto ya lo sabía y hasta aquí va todo bien. <br><br>Si hacemos el cálculo 2^8 el  resultado es de 256. Esto quiere decir que en 8 bits cabe un número del rango 0 a 255, ya que el cero también se cuenta.
<br><br>Yo sabía que el signo se almacenaba en el bit de mayor magnitud, es decir, el primero de izquierda a derecha, en este caso en el octavo bit (128, unas lineas abajo). Yo sólo sabía que por ejemplo el número 128 se representaba en binario de la siguiente forma:
<br><br>128 | 64 | 32 | 16 | 8 | 4 | 2 | 1<br>  1     0     0    0   0   0   0   0<br><br>Es decir, 10000000, pero el libro dice que el octavo bit siempre será negativo, por lo tanto si se utiliza (contiene un 1), todo el número será negativo, y si no se utiliza (contiene un 0), significa que el número será positivo.
<br><br>Por lo tanto, como se está utilizando el octavo bit (contiene un 1), el número es negativo y este número no es 128, si no, -128.<br><br>Ya que:<br> <br>  128  | 64 | 32 | 16 |  8  |  4  | 2 | 1<br> -128 + 0  + 0 +  0 + 0 + 0 + 0 + 0 = -128
<br><br>Y para representar el -126, por ejemplo, sería:<br><br>10000010<br><br>Ya que:<br>-128 + 0 + 0 + 0 + 0 + 0 + 2 + 0 = -126<br><br>Y el número 127 se representaba: 01111111<br>En donde el octavo bit no está activado y por lo tanto el número es negativo.
<br><br>Mi pregunta es qué tan cierto es esto? Y por qué se supone que el código ASCII de 8 bits llega hasta el 255?<br><br>Es por cuestión de que se declare 'con signo' o 'sin signo'?<br>