2진수를 10진수로 바꿔주는 로직을 짜다가 알게 된 메서드이다.
처음에는
char[] stringArray = str.toCharArray();
String binaryNumber = String.valueOf(stringArray);
int decimalNumber = 0;
int power = 0;
for (int i = binaryNumber.length() - 1; i >= 0; i-- ){
int digit = Character.getNumericValue(binaryNumber.charAt(i));
decimalNumber += digit * Math.pow(2, power);
power++;
}
이런식으로 일일히 반복문을 돌며 2의 제곱수를 곱해주는 방식으로 구현을 해 줬었는데,
자바에 주어진 문자열 s를 지정된 진법(radix)으로 해석하여 해당 진법의 정수 값으로 변환하는 역할을 해 주는 유용한 메서드가 있다는 사실을 알게 되었다.
위 메서드를 사용하게 되자
String binaryNumber = updatedSegment.toString();
int decimalNumber = Integer.parseInt(binaryNumber, 2);
segmentedArray[i] = String.valueOf(decimalNumber);
다음과 같이 로직이 간결 해 질 수 있었다.
사용법은 아래와 같다.
- 2진법 변환: radix 값으로 2를 사용합니다. 예를 들어, String binary = "1010";이라는 이진수 문자열을 10진수로 변환하려면 int decimal = Integer.parseInt(binary, 2);와 같이 사용합니다.
- 10진법 변환: radix 값으로 10을 사용합니다. 예를 들어, String decimalString = "42";라는 10진수 문자열을 정수로 변환하려면 int decimal = Integer.parseInt(decimalString, 10);와 같이 사용합니다. 주로 이 방법이 가장 많이 사용됩니다.
- 8진법 변환: radix 값으로 8을 사용합니다. 예를 들어, String octal = "52";라는 8진수 문자열을 10진수로 변환하려면 int decimal = Integer.parseInt(octal, 8);와 같이 사용합니다.
- 16진법 변환: radix 값으로 16을 사용합니다. 예를 들어, String hex = "2A";라는 16진수 문자열을 10진수로 변환하려면 int decimal = Integer.parseInt(hex, 16);와 같이 사용합니다
참고 :
https://docs.oracle.com/javase/9/docs/api/java/lang/Integer.html#parseInt-java.lang.String-int-
https://onepinetwopine.tistory.com/768
자바 JAVA ] 10진수 <-> 2진수 변환 / Integer.toBinaryString / Integer.parseInt
요약 10진수 -> 2진수 String : Integer.toHexString(8); 2진수 -> 10진수 int : Integer.parseInt("1000",2); java.lang패키지에 있는 Integer클래스는 10진수 값을 2진수로 바꾸고 2진수를 10진수로 바꿔주는 함수를 지원한
onepinetwopine.tistory.com
반응형
'Android > Java' 카테고리의 다른 글
[Java] 자바 빌더 패턴: 복잡한 객체 생성의 단순화와 한계점 탐구 (0) | 2024.04.09 |
---|---|
[Java] 오버로딩과 오버라이딩: 객체 지향 프로그래밍에서의 메소드 다형성 이해하기 (0) | 2024.04.02 |
[ Java ] 인터페이스(interface)의 핵심 이해: 주요 특징과 사용 예시 (0) | 2024.04.01 |
[ Java ] Java에서 문자열 처리의 효율성을 높이는 방법: StringBuilder 활용하기 (0) | 2024.03.22 |
[ Java ] 자바에서 "1"과 '1'의 차이점: 문자열과 문자 할당 이해하기 (0) | 2024.03.19 |