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

219
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 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