Autor Tema: Duda en C  (Leído 1370 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Sebas1010

  • PIC10
  • *
  • Mensajes: 11
Duda en C
« en: 17 de Septiembre de 2022, 12:56:01 »
Buenas tardes, les consulto sobre una linea de un prgrama, estoy aprendiendo programacion pero me falta mucho jeje.
Mi consulta que tambien les puede sacar dudas a otros usuarios:

 Time[6] =  hours   / 10 + '0';          // Guardamos las decenas de la variable "hours" en la posición 6 del arreglo "Time".
 Time[7] =  hours   % 10 + '0';          // Guardamos las unidades de la variable "hours" en la posición 7 del arreglo "Time".

Para que le suma "+'0' " que tambien lo vi en otro programas tambien.

Saludos espero no molestar

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Duda en C
« Respuesta #1 en: 17 de Septiembre de 2022, 16:37:40 »
Buenas tardes, les consulto sobre una linea de un prgrama, estoy aprendiendo programacion pero me falta mucho jeje.
Mi consulta que también les puede sacar dudas a otros usuarios:

 Time[6] =  hours   / 10 + '0';          // Guardamos las decenas de la variable "hours" en la posición 6 del arreglo "Time".
 Time[7] =  hours   % 10 + '0';          // Guardamos las unidades de la variable "hours" en la posición 7 del arreglo "Time".

Para que le suma "+'0' " que tambien lo vi en otro programas tambien.

Saludos espero no molestar

Yo entendería que le sumas '0' es porque lo conviertes es ASCII. Me explico:

Digamos que tienes en hours 13 (decimal)

Por lo tanto qne  Time[6]  tendrías 1 y en  Time[7] tendrías 3.

Pero muchas veces para representar un número en una pantalla, o en algún otro medio, necesitas mostrar su valor en ASCII.

El ASCII del número 0 es 0x30, del número 1 es 0x31, del número 2 es 0x32, etc., hasta llegar a 9 que es 0x39.

Entonces para convertir a ASCII el 1 y al 3, deberías sumarle 0x30, de esa mañería tendrías 0x31 y 0x33

Es decir sería así:

Código: C
  1. Time[6] =  hours   / 10 + 0x30          // Guardamos las decenas de la variable "hours" en la posición 6 del arreglo "Time".
  2.  Time[7] =  hours   % 10 + 0x30;

Si no deseas escribir 0x30, puedes representarlo como carácter en ASCII, Es decir '0'. '0' es lo mismo que 0x30, '1' es lo mismo que 0x31, etc.





Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Sebas1010

  • PIC10
  • *
  • Mensajes: 11
Re:Duda en C
« Respuesta #2 en: 17 de Septiembre de 2022, 18:03:57 »
muchas gracias!!! ahi lo entindi bien!.


 

anything