29/05/2012, 00:49
|
| | Fecha de Ingreso: junio-2010 Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 6 meses Puntos: 73 | |
Respuesta: Cambio mayúscula-minúscula en C El tipo char es (en realidad) signed char, que con 8 bits te da un rango de -128 a +127. Con unsigned char tendrías un rango de 0 a 255. El código ASCII original era de 7 bits, lo que daba un rango de 0 a +127, y al emplear 8 bits, los nuevos códigos disponibles (de 128 a 255) se utilizaron para caracteres no estándar.
Al definir el dato como char (en realidad, signed char), en 8 bits, el octavo bit se utiliza para indicar signo (0=positivo, 1=negativo, y lo mismo ocurre con los demás tipos enteros). Los valores de 0 a 127 (0x00 a 0x7F hex, 00000000 a 01111111 binario) son positivos, y los valores de 128 a 255 (respectivamente, 0x80 a 0xFF hex, 10000000 a 11111111) se te van a traducir en -128 a -1 (sí, en ese orden).
Por lo tanto, utiliza el tipo unsigned char, y a ver qué sale. |