반응형
코틀린, 자바 진법 변환
* 아래 코드들은 코틀린으로 작성하였으나 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
}
최근댓글