Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

224
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda