"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que o operador módulo do Java retorna um resultado negativo para números negativos?

Por que o operador módulo do Java retorna um resultado negativo para números negativos?

Publicado em 2024-11-16
Navegar:592

Why Does Java\'s Modulo Operator Return a Negative Result for Negative Numbers?

Resultados de módulo negativos em Java

Ao realizar operações de módulo com números negativos em Java, você deve ter notado que os resultados diferem daqueles obtidos em Python. Em Java, int i = -1% 2 produz -1, enquanto em Python retorna 1.

Compreendendo Módulo e Resto

A chave para entender essa diferença reside na distinção entre módulo e resto. Em Python, o operador % retorna o módulo, que sempre produz um resultado não negativo. Em contraste, o operador módulo do Java retorna o resto, que pode ser negativo se o numerador for negativo.

Corrigindo resultados negativos

Para obter o mesmo comportamento do operador % do Python em Java, você pode executar as seguintes etapas:

  1. Calcule o restante usando o módulo: int i = -1% 2;
  2. Adicione o suficiente para tornar o restante não negativo: if (i

Alternativamente, você pode usar a seguinte fórmula:

int i = (((-1 % 2) 2) % 2);

Ao aplicar esses métodos, você pode garantir que o operador módulo do Java retorne resultados positivos para entradas negativas, correspondendo ao comportamento em Python.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3