Método compareUnsigned do Integer em Java

JavaBeginner
Pratique Agora

Introdução

O método compareUnsigned() da classe Integer é usado para comparar o valor sem sinal (unsigned) de dois inteiros para determinar qual deles é maior que o outro. O método retorna 0 se os valores sem sinal de ambos os inteiros forem iguais. Ele retorna 1 se o valor sem sinal do primeiro inteiro for maior que o segundo. Ele retorna -1 se o valor sem sinal do primeiro inteiro for menor que o segundo.

Criar um arquivo de classe Java

No terminal, crie um novo diretório para o seu projeto Java. Por exemplo:

mkdir project

Mova-se para o diretório do projeto:

cd project

Crie um novo arquivo de classe Java chamado IntegerCompareUnsigned.java:

touch IntegerCompareUnsigned.java

Implementar o código

Copie e cole o seguinte código no arquivo IntegerCompareUnsigned.java:

import java.lang.Integer;
import java.util.Scanner;

public class IntegerCompareUnsigned {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.print("Enter first and second number: ");

 // Taking input from user
        try {
            int n1 = sc.nextInt();
            int n2 = sc.nextInt();

     // Calling compareUnsigned() method
            int r = Integer.compareUnsigned(n1, n2);

     // Examining the result
            if(r > 0) {
                System.out.println("First number is greater");
            }
            else if(r < 0) {
                System.out.println("Second number is greater");
            }
            else {
                System.out.println("Both numbers are equal");
            }
        }
        catch(Exception e) {
            System.out.println("Invalid input!");
        }
    }
}

Salve e saia do arquivo.

Este programa recebe dois inteiros do usuário e usa o método compareUnsigned() para comparar seus valores sem sinal. Em seguida, ele exibe se o primeiro número é maior que o segundo, o segundo número é maior que o primeiro, ou se os números são iguais.

Compilar e executar o programa

Compile o programa usando o seguinte comando:

javac IntegerCompareUnsigned.java

Execute o programa usando o seguinte comando:

java IntegerCompareUnsigned

Você deverá ver o seguinte prompt:

Enter first and second number:

Insira dois números - um maior que 2147483647 e o outro menor ou igual a 2147483647. Isso ocorre porque o tipo de dado int do Java pode armazenar apenas valores de 32 bits com sinal - de -2147483648 a 2147483647. Se você inserir um número maior que 2147483647, uma mensagem de erro será exibida.

O programa será executado e você deverá ver a seguinte saída:

First number is greater

Testar o programa com diferentes valores

Você pode testar o programa com diferentes valores e ver a saída.

Tente executar o programa com as seguintes entradas:

Enter first and second number: -10 20
Enter first and second number: 500000000 -200000000
Enter first and second number: 0 0

Modificar o programa

Modifique o programa para receber dois inteiros como argumentos de linha de comando em vez de lê-los do usuário em tempo de execução.

Copie e cole o seguinte código no arquivo IntegerCompareUnsigned.java:

import java.lang.Integer;

public class IntegerCompareUnsigned {

    public static void main(String[] args) {

 // Checking if the correct number of arguments are provided
        if(args.length != 2) {
            System.out.println("Please provide two integer arguments!");
            return;
        }

 // Parsing the arguments as integers
        int n1 = Integer.parseInt(args[0]);
        int n2 = Integer.parseInt(args[1]);

 // Calling compareUnsigned() method
        int r = Integer.compareUnsigned(n1, n2);

 // Examining the result
        if(r > 0) {
            System.out.println(n1 + " is greater than " + n2);
        }
        else if(r < 0) {
            System.out.println(n2 + " is greater than " + n1);
        }
        else {
            System.out.println(n1 + " and " + n2 + " are equal");
        }
    }
}

Salve e saia do arquivo.

Compilar e executar o programa modificado

Compile o programa modificado usando o seguinte comando:

javac IntegerCompareUnsigned.java

Execute o programa modificado usando o seguinte comando:

java IntegerCompareUnsigned 3000000000 200000000

Você deve ver a seguinte saída:

3000000000 is greater than 200000000

Modifique o programa para testá-lo com diferentes entradas.

Resumo

Neste laboratório, você aprendeu como usar o método compareUnsigned() da classe Integer para comparar o valor sem sinal (unsigned) de dois inteiros para descobrir qual deles é maior que o outro. Você também aprendeu como modificar o programa para receber dois inteiros como argumentos de linha de comando em vez de lê-los do usuário em tempo de execução.