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.



