코딩테스트/Java

[Java] 자바 진수변환 알고리즘

SK_MOUSE 2021. 1. 25. 15:07
Integer.toBinaryString(바꿀문자열);
Integer.toOctalString(바꿀문자열);
Integer.toHexString(바꿀문자열);
Integer.parseInt(바꿀문자열, 변환할진수);
StringBuilder를 이용
reverse()호출
  • 10진수->2/8/16진수

Integer.toBinaryString(바꿀문자열);

Integer.toOctalString(바꿀문자열);

Integer.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

 

 

  • 나머지 진수변환은 알고리즘을 이용해서 풀이하는 방법뿐.

//String s=""; int decNumber = 10; int 진수 = 2; StringBuilder sub = new StringBuilder(""); while(decNumber>0){ ​​​​​​​​​​​​​​​​int remain = decNumber%진수; ​​​​​​​​​​​​​​​​decNumber /= 진수; ​​​​​​​​​​​​​​​​//sub = remain + sub; ​​​​​​​​​​​​​​​​sub.append(remain); } String 변환완료 = sub.reverse().toString();//뒤집어주어야함 System.out.println(변환완료);

StringBuilder를 이용하는것을 우선하여 작성하였다.

 

설명하자면, 나머지값을 문자열에 더해주는건데,

위와같이 역순으로 읽어주어야한다.

StringBuilder를 이용시, append를 할경우 뒤에다가 쌓이므로

전체 문자열을 역순으로 뒤집어주는 reverse()호출이 필요하다.

 

ex)1011 -> 1101로 역순변환.

반응형