코틀린, 자바 진법 변환


* 아래 코드들은 코틀린으로 작성하였으나 println함수를 제외한 모든 코드는 java에서 사용이 가능하다.

 

16, 8, 2진수 to 10진수

Java의 Integer.parseInt를 이용한다.

Integer.parseInt(s : String, radix : Int)

 

s는 변환할 값, radix는 변환할 진수를 입력한다.

 

fun main()
{
    println(Integer.parseInt("100", 16)) // 16진수 100 -> 10진수 256
    println(Integer.parseInt("100", 8)) // 8진수 100 -> 10진수 64
    println(Integer.parseInt("100", 2)) // 2진수 100 -> 10진수 4
}

 

 

10진수 to 16, 8, 2진수

Java의 Integer.toHexString, Integer.toOctalString, Integer.toBinaryString을 이용한다.

Integer.toHexString(i : Int)
Integer.toOctalString(i : Int)
Integer.toBinaryString(i : Int)

 

i는 변환할 값을 입력한다.

 

fun main()
{
    println(Integer.toHexString(100))	// 10진수 100 -> 16진수 
    println(Integer.toOctalString(100))	// 10진수 100 -> 8진수 144
    println(Integer.toBinaryString(100))// 10진수 100 -> 2진수 01100100
}

 

 

기타 진수 변환

위 n진수 to 10진수, 10진수 to n진수 변환을 제외한 나머지 n진수 to n진수 변환은 10진수 변환을 한번 거치면 가능하다.

예를들어 8진수 to 16진수는 8진수->10진수->16진수 변환으로 가능하다.

 

fun main()
{
    println(Integer.toHexString(Integer.parseInt("144", 8))) // 8진수 144 -> 16진수 64
}