• Martes 12 de Noviembre de 2024, 20:55

Autor Tema:  porque pasa esto??????????  (Leído 1439 veces)

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
porque pasa esto??????????
« en: Jueves 20 de Enero de 2011, 00:10 »
0
cuando pruevo este codigo me aparece en pantalla "-110", cuando me deberia de aparecer "143"

#include <stdio.h>
#include <cstdlib>

int main()
{
 char runa3[4][4];
 runa3[0][3]=146;
 printf("%d n",runa3[0][3]);
 system("pause");
 return 0;
}

 :brickwall:  :hitcomp:  :brickwall:  :hitcomp:  :brickwall:  :hitcomp:

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: porque pasa esto??????????
« Respuesta #1 en: Jueves 20 de Enero de 2011, 00:40 »
0
Pasa por que es lo que tiene que pasar.
Si quieres que salga 146:
Código: C++
  1.  
  2. #include <stdio.h>
  3. int main()
  4. {
  5.     unsigned char runa3[4][4];
  6.     runa3[0][3]=146;
  7.     printf("%dn", runa3[0][3]);
  8.     return 0;
  9. }
  10.  
  11.  

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: porque pasa esto??????????
« Respuesta #2 en: Jueves 20 de Enero de 2011, 00:55 »
0
gracias

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: porque pasa esto??????????
« Respuesta #3 en: Jueves 20 de Enero de 2011, 09:50 »
0
char -> rango de -128 hasta 127. Si te pasas, te "das la vuelta" (lo que técnicamente se llama desbordamiento u overflow).
unsigned char -> rango de 0 a 255.