Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

183
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!