10진수를 2진수,8진수,16진수로 변환 할 때, Integer 클래스의 toBinaryString, toOctalString, toHexString 함수를 사용
int i = 127;
String binaryString = Integer.toBinaryString(i); //2진수
String octalString = Integer.toOctalString(i); //8진수
String hexString = Integer.toHexString(i); //16진수
System.out.println(binaryString); //1111111
System.out.println(octalString); //177
System.out.println(hexString); //7f
반대로 2진수,8진수,16진수를 10진수로 변환하기 위해선 Integer 클래스의 parseInt를 사용하여 쉽게 변환이 가능
int binaryToDecimal = Integer.parseInt(binaryString, 2);
int binaryToOctal = Integer.parseInt(octalString, 8);
int binaryToHex = Integer.parseInt(hexString, 16);
System.out.println(binaryToDecimal); //127
System.out.println(binaryToOctal); //127
System.out.println(binaryToHex); //127
자바 2진수, 8진수, 16진수 변환 시에는 Integer 클래스 API를 활용하면 편하다.
(참고 : //docs.oracle.com/javase/8/docs/api/java/lang/Integer.html)
10진수 -> 2진수, 8진수, 16진수 변환
int num = 77; String a2 = Integer.toBinaryString(num); // 10진수 -> 2진수 String a8= Integer.toOctalString(num); // 10진수 -> 8진수 String a16 = Integer.toHexString(num); // 10진수 -> 16진수 System.out.println("2 진수 : " + a2); System.out.println("8 진수 : " + a8); System.out.println("16 진수 : " + a16); | cs |
결과
2 진수 : 1001101 8 진수 : 115 16 진수 : 4d |
2진수, 8진수, 16진수 -> 10진수로 변환
int num = 77; String a2 = Integer.toBinaryString(num); String a8= Integer.toOctalString(num); String a16 = Integer.toHexString(num); int a2_2 = Integer.parseInt(a2, 2); int a8_8 = Integer.parseInt(a8, 8); int a16_16 = Integer.parseInt(a16, 16); System.out.println(a2_2); System.out.println(a8_8); System.out.println(a16_16); |
결과
어제 오늘 내일
IT/Java
[Java] 10진수 <-> 2진수, 8진수, 16진수로 변환하기
hi.anna 2021. 4. 24. 22:11
10진수 -> 2진수, 8진수, 16진수로 변환하기
java.lang.Integer의 toBinaryString(), toOctalString(), toHexaString() 메소드를 이용하여
10진수를 2진수, 8진수, 16진수 문자열로 변환할 수 있습니다.
리턴 타입 | 클래스 | 메소드 | 설명 |
static String | java.lang.Integer | toBinaryString(int i) | 10진수 -> 2진수 |
static String | java.lang.Integer | toOctalString(int i) | 10진수 -> 8진수 |
static String | java.lang.Integer | toHexaString(int i) | 10진수 -> 16진수 |
예제
public class NumberConvert { public static void main(String[] args) { int decimal = 10; String binary = Integer.toBinaryString(decimal); // 10진수 -> 2진수 String octal = Integer.toOctalString(decimal); // 10진수 -> 8진수 String hexaDecimal = Integer.toHexString(decimal); // 10진수 -> 16진수 System.out.println("10진수 : " + decimal); System.out.println("2진수 : " + binary); System.out.println("8진수 : " + octal); System.out.println("16진수 : " + hexaDecimal); } }결과
10진수 : 10 2진수 : 1010 8진수 : 12 16진수 : a위 코드는 10진수 10을
2진수, 8진수, 16진수로 변환하고 있습니다.
2진수, 8진수, 16진수 -> 10진수
java.lang.Integer 클래스의 parseInt() 메소드를 이용하여
2진수, 8진수, 16진수 문자열을 10진수 integer로 변경할 수 있습니다.
리턴 타입 | 클래스 | 메소드 | 설명 |
static int | java.lang.Integer | parseInt(String s) | 문자열(s)을 10진수로 읽어서 int로 반환합니다. |
static int | java.lang.Integer | parseInt(String s, int radix) | 문자열(s)을 변환할 진수(radix)로 읽어서 int로 반환합니다. (따라서, 2번째 파라미터(radix)를 10으로 입력하면, parseInt(String s)와 같습니다.) |
예제
public class NumberConvert { public static void main(String[] args) { int binaryToDecimal = Integer.parseInt("1010", 2); int octalToDecimal = Integer.parseInt("12", 8); int hexaToDecimal = Integer.parseInt("A", 16); System.out.println("2진수(1010) -> 10진수 : " + binaryToDecimal); // 10 System.out.println("8진수(12) -> 10진수 : " + octalToDecimal); // 10 System.out.println("16진수(a) -> 10진수 : " + hexaToDecimal); // 10 } }결과
2진수(1010) -> 10진수 : 10 8진수(12) -> 10진수 : 10 16진수(a) -> 10진수 : 10위 코드는 2진수, 8진수, 16진수를 10진수로 변환하고 있습니다.