Ver Mensaje Individual
  #7 (permalink)  
Antiguo 29/05/2012, 00:49
Fw190
 
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.