Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

190
Vistas
¿Qué significa s[i] - '0'?

El siguiente código es del libro de texto de K&R, página número 71:

 val =10.0*val+s[i] -'0'

¿Qué significa s[i] -'0' aquí?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Parece que s es una matriz de caracteres o un puntero al primer elemento de una matriz de caracteres. Y el elemento s[i] contiene un carácter que representa un dígito como, por ejemplo '5' . Para convertir este carácter que por ejemplo en ASCII tiene código interno igual a 53 (mientras que el código interno del carácter '0' es 48) se utiliza la expresión

 s[i] -'0'

eso es equivalente a

 53 - 48

e igual al número 5

Según el Estándar C (5.2.1 Juegos de caracteres)

3... Tanto en el juego de caracteres básicos de origen como en el de ejecución, el valor de cada carácter después del 0 en la lista anterior de dígitos decimales será uno mayor que el valor del anterior.

Así que en ASCII hay una relación

Valor del código de carácter

 '0' - 48 '1' - 49 '2' - 50 '3' - 51 '4' - 52 '5' - 53 '6' - 54 '7' - 55 '8' - 56 '9' - 57

Por ejemplo en EBCDIC los códigos internos de caracteres que representan dígitos son 240 - 249 (0-9) o en notación hexadecimal F0 - F9 .

Por lo tanto, es una forma estándar de obtener un dígito numérico de un carácter, independientemente del conjunto de caracteres utilizado.

over 4 years ago · Santiago Trujillo Denunciar

0

char un int en forma de caracteres en un int real.

Por ejemplo, si s[i] es '9' entonces s[i] - '0' producirá 9 .

over 4 years ago · Santiago Trujillo Denunciar

0

Probablemente el código se usa para convertir una cadena con dígitos decimales en el número representado (por ejemplo, "1234" en 1234).

s[i] es el dígito actual, s[i]-'0' es el valor numérico del dígito actual (por ejemplo, '9' se convierte en 9).

El resto del código C es simplemente cómo funcionan los sistemas numéricos posicionales.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda