Java에서 2진수에서 10진수로 변환
0과 1의 두 자리 숫자만 있는 숫자를 이진수라고 합니다. 2진수 체계로만 표현됩니다. 우리는 이진 시스템이 현대 컴퓨터의 기본 디지털 언어라는 것을 알고 있습니다. 그러나 우리는 십진수에 더 익숙합니다. 물론 이진수를 십진수로 변환하거나 그 반대로 변환할 수 있습니다. 아래 다이어그램에서 이진수를 십진수로 변환하는 예를 볼 수 있습니다. 10101은 수학 계산을 설명하는 데 사용되는 이진수입니다. 간단한 3단계를 따르기만 하면 됩니다. 항상 이진수의 오른쪽에서 숫자를 가져와서 2의 거듭제곱을 곱한 다음 간단히 더합니다. 이 경우 십진수 21을 얻게 됩니다. Java에서 이진수를 십진수로 변환하는 두 가지 방법이 있습니다.- 자바 방식 사용
- 커스텀 로직 사용
Java 미리 빌드된 방법
Java는 문자열을 정수로 변환하는 Integer.parseInt() 메서드를 제공합니다 . parseInt() 메서드는 Integer 클래스 에 속합니다 .통사론
public static int parseInt(String binaryNumber, int radix)
예
public class ConvertingBinaryToDecimal {
public static void main(String args[]){
String binaryNumber="10101";
int decimalNumber=Integer.parseInt(binaryNumber,2);
System.out.println(decimalNumber);
}
}
산출
21
사용자 지정 논리 사용
또한 정수를 받아 십진수로 변환하는 프로그램을 Java로 작성할 수도 있습니다. 이해를 돕기 위해 예를 들어보겠습니다.예
public class ConvertingBinaryToDecimal {
// function for converting binary to decimal number
public static int getDecimalNumber(int binaryNumber){
int decimalNumber = 0;
int power = 0;
while(binaryNumber > 0){
//taking the rightmost digit from binaryNumber
int temp = binaryNumber%10;
//now multiplying the digit and adding it to decimalNumber variable
decimalNumber += temp*Math.pow(2, power);
//removing the rightmost digit from binaryNumber variable
binaryNumber = binaryNumber/10;
//incrementing the power variable by 1 to be used as power for 2
power++;
}
return decimalNumber;
}
public static void main(String args[]){
System.out.println("Decimal value is: "+getDecimalNumber(111010));
System.out.println("Decimal value is: "+getDecimalNumber(001010));
}
}
산출
소수점 값: 58 소수점 값: 24
GO TO FULL VERSION