[TIL] Java (진수 변환)
10진수 => 16진수 or 8진수 or 2진수 변환
- Integer.toBinaryString(십진수)
- 10진수에서 2진수로 변환
- Integer.toOctalString(십진수)
- 10진수에서 8진수로 변환
- Integer.toHexString(십진수)
- 10진수에서 16진수로 변환
public class Main {
public static void main(String[] args) {
int number = 77;
System.out.println(Integer.toBinaryString(number));
// output : 1001101
System.out.println(Integer.toOctalString(number));
// output : 115
System.out.println(Integer.toHexString(number));
// output : 4d
}
}
16진수 or 8진수 or 2진수 변환 => 10진수 변환
- Integer.parseInt(문자열, radix)
- 문자열만 넣게 된다면, 숫자로 이루어진 문자열을 정수로 반환해준다
- radix를 추가하게 되면, 문자열에 있는 숫자를 해당 숫자로 넣은 진수를 인식해서 정수로 반환해준다
- radix가 2면, 2진수 / 8이면 8진수 / 16이면 16진수다
public class Main {
public static void main(String[] args) {
String binary = "1001101";
String octal = "115";
String hex = "4d";
System.out.println(Integer.parseInt(binary, 2));
// output : 77
System.out.println(Integer.parseInt(octal, 8));
// output : 77
System.out.println(Integer.parseInt(hex, 16));
// output : 77
}
}
AND, OR, XOR 연산자 사용하여 2진수 연산을 하고 십진수로 변환하기
- 2진수가 문자열로 주어지면, 먼저 2진수를 십진수로 반환한다
- AND, OR, XOR 연산자는 Integer만 사용할 수 있고, 반환된 십진수를 연산자를 통해 결과값을 반환한다
- 결과값은 십진수로 나와있다
public class Main {
public static void main(String[] args) {
String bin1 = "1011010";
String bin2 = "1101001";
// 연산자를 사용하기 위해서 이진수를 십진수로 바꿔야 한다
int num1 = Integer.parseInt(bin1, 2);
int num2 = Integer.parseInt(bin2, 2);
// AND, OR, XOR 연산자를 활용해서 2진수 연산을 하며 십진수를 출력한다
System.out.println(num1 & num2);
// output : 72
System.out.println(num1 | num2);
// output : 123
System.out.println(num1 ^ num2);
// output : 51
}
}
AND, OR, XOR 연산자 사용하여 2진수 연산을 하고 이진수로 변환하기
- 위의 결과를 이진수로 반환하기 위해서는 .toBinaryString() 을 이용하면 된다
- 여기서 따로 연산자를 사용하기 위해서는 String.valueOf(num1 & num2); 를 사용하면 된다
public class Main {
public static void main(String[] args) {
String bin1 = "1011010";
String bin2 = "1101001";
// 연산자를 사용하기 위해서 이진수를 십진수로 바꿔야 한다
int num1 = Integer.parseInt(bin1, 2);
int num2 = Integer.parseInt(bin2, 2);
int num1AndNum2 = Integer.parseInt(String.valueOf(num1 & num2));
int num1OrNum2 = Integer.parseInt(String.valueOf(num1 | num2));
int num1XorNum2 = Integer.parseInt(String.valueOf(num1 ^ num2));
// AND, OR, XOR 연산자를 활용해서 2진수 연산을 하며 십진수를 출력한다
System.out.println(Integer.toBinaryString(num1AndNum2));
// output : 1001000
System.out.println(Integer.toBinaryString(num1OrNum2));
// output : 1111011
System.out.println(Integer.toBinaryString(num1XorNum2));
// output : 110011
}
}
'Skill Stacks > Java' 카테고리의 다른 글
[Java] Open API와 JSON 활용하기 (0) | 2023.08.07 |
---|---|
[TIL] Java (정렬) (0) | 2023.06.28 |
[TIL] Java (Split, Join) (0) | 2023.06.23 |
[TIL] Java (Regex) (0) | 2023.06.12 |
[TIL] Java (Scanner) (0) | 2023.06.11 |