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

301
Visualizações
Encuentre el mayor valor en C usando desbordamiento y bucle

La tarea es encontrar el mayor valor int con un bucle. Tengo exactamente el mismo código casi en C y en Java. En Java funciona bien, pero en CI obtiene el valor más pequeño y me gustaría saber por qué.

C

 #include <stdio.h> int main() { int i = 0; for (; i+1 > 0; i++) { } printf("%d", i); return 0; }

Java

 public class Java { public static void main(String[] args) { int i = 0; for (; i+1 > 0; i++) { } System.out.println(i); } }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Su código parece asumir falsamente que en C, se garantiza que un int se ajustará a un número negativo en el desbordamiento . Esta suposición es incorrecta. Tal desbordamiento de enteros con signo invocará un comportamiento indefinido en C, por lo que no puede confiar en ningún comportamiento específico si deja que eso suceda.

Para encontrar el mayor valor representable de un int , puede usar la macro constante INT_MAX , que se define en limits.h .

Sin embargo, tenga en cuenta que solo el desbordamiento de enteros con signo invoca un comportamiento indefinido en C. En contraste con eso, cuando se usan números sin signo, se garantiza que se ajustarán de una manera bien definida. Por lo tanto, podría encontrar el unsigned int representable más grande utilizando su método.

Además, algunos compiladores tienen una configuración que hará que el comportamiento del desbordamiento de enteros con signo quede bien definido (suponiendo que su hardware lo admita y use el complemento a dos para representar números con signo, que es probablemente el caso). En gcc y clang, puede usar la opción de línea de comandos del compilador -fwrapv para lograr esto.

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