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

218
Views
Salida extraña de expresión simple en C, ¿por qué?

Estoy usando TurboC++. Escribo la siguiente expresión que no da como resultado una evaluación adecuada, ¿me estoy perdiendo algún concepto detrás de ella?

 int c=300*300/300; printf("%d",c);

la salida es

81

¿Por qué?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

300*300 is 90000.

Suponiendo que int es de 16 bits, se ha desbordado.

El desbordamiento se envuelve, dándote: 24464 .

 24465/300 = 81.55

No confíes en esto. Es un comportamiento indefinido.

over 4 years ago · Santiago Trujillo Report

0

La evaluación de 300 * 300 / 300 ocurre de izquierda a derecha.

300 * 300 desborda un tipo integral con signo de 16 bits (un int en Turbo C++ es de 16 bits). Como el cálculo se realizará en aritmética con signos, el resultado es indefinido .

Lo que sucede es que 300 * 300 se envuelve para darte 24464. (24464 + 32768 + 32768 = 90000).

24464/300 es 81 en división entera.

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!