소개
Integer 클래스의 compareUnsigned() 메서드는 두 정수의 부호 없는 값을 비교하여 어느 값이 더 큰지 확인하는 데 사용됩니다. 이 메서드는 두 정수의 부호 없는 값이 같으면 0 을 반환합니다. 첫 번째 정수의 부호 없는 값이 두 번째 정수보다 크면 1 을 반환합니다. 첫 번째 정수의 부호 없는 값이 두 번째 정수보다 작으면 -1 을 반환합니다.
Integer 클래스의 compareUnsigned() 메서드는 두 정수의 부호 없는 값을 비교하여 어느 값이 더 큰지 확인하는 데 사용됩니다. 이 메서드는 두 정수의 부호 없는 값이 같으면 0 을 반환합니다. 첫 번째 정수의 부호 없는 값이 두 번째 정수보다 크면 1 을 반환합니다. 첫 번째 정수의 부호 없는 값이 두 번째 정수보다 작으면 -1 을 반환합니다.
터미널에서 Java 프로젝트를 위한 새 디렉토리를 생성합니다. 예를 들어:
mkdir project
프로젝트 디렉토리로 이동합니다:
cd project
IntegerCompareUnsigned.java라는 새 Java 클래스 파일을 생성합니다:
touch IntegerCompareUnsigned.java
다음 코드를 복사하여 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!");
}
}
}
파일을 저장하고 종료합니다.
이 프로그램은 사용자로부터 두 개의 정수를 입력받아 compareUnsigned() 메서드를 사용하여 부호 없는 값을 비교합니다. 그런 다음 첫 번째 숫자가 두 번째 숫자보다 큰지, 두 번째 숫자가 첫 번째 숫자보다 큰지, 또는 숫자가 같은지를 표시합니다.
다음 명령을 사용하여 프로그램을 컴파일합니다:
javac IntegerCompareUnsigned.java
다음 명령을 사용하여 프로그램을 실행합니다:
java IntegerCompareUnsigned
다음 프롬프트를 볼 수 있습니다:
Enter first and second number:
두 개의 숫자를 입력합니다. 하나는 2147483647 보다 크고 다른 하나는 2147483647 보다 작거나 같아야 합니다. 이는 Java 의 int 데이터 타입이 부호 있는 32 비트 값만 저장할 수 있기 때문입니다. 즉, -2147483648 부터 2147483647 까지입니다. 2147483647 보다 큰 숫자를 입력하면 오류 메시지가 표시됩니다.
프로그램이 실행되고 다음 출력을 볼 수 있습니다:
First number is greater
다양한 값으로 프로그램을 테스트하고 출력을 확인할 수 있습니다.
다음 입력을 사용하여 프로그램을 실행해 보십시오:
Enter first and second number: -10 20
Enter first and second number: 500000000 -200000000
Enter first and second number: 0 0
실행 시 사용자로부터 입력을 받는 대신, 명령줄 인수로 두 개의 정수를 받도록 프로그램을 수정합니다.
다음 코드를 복사하여 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");
}
}
}
파일을 저장하고 종료합니다.
다음 명령을 사용하여 수정된 프로그램을 컴파일합니다:
javac IntegerCompareUnsigned.java
다음 명령을 사용하여 수정된 프로그램을 실행합니다:
java IntegerCompareUnsigned 3000000000 200000000
다음과 같은 출력을 볼 수 있습니다:
3000000000 is greater than 200000000
다양한 입력으로 테스트하기 위해 프로그램을 수정하십시오.
이 랩에서는 Integer 클래스의 compareUnsigned() 메서드를 사용하여 두 정수의 부호 없는 (unsigned) 값을 비교하여 어느 값이 더 큰지 확인하는 방법을 배웠습니다. 또한 실행 시 사용자로부터 입력을 받는 대신, 명령줄 인수로 두 개의 정수를 받도록 프로그램을 수정하는 방법도 배웠습니다.