본문 바로가기

Programming/Programming 알고리즘 연습

[Kotlin] 이진법 변환

작성 목적

  • Kotlin 코드 작성중 toBin, toDec를 하게되어 작성

 

작성 방식

  • toDec : (자릿수 * 자릿수에 해당하는 제곱값)을 더하는 방식으로 적용 (111 -> (2*2)*1 + (2)*1 + (1)*1)
  • toBin : 숫자의 각 자릿값을 계산하여 1인경우 자릿수에 맞는 값을 곱하여 계산

 

소스코드

    //10진수로 변환
    fun toDec(bin: String): Int{
        var result: Int = 0
        var binNum: Int = bin.toInt()
        var binCalc: Int = 2

        var num: Int = 1
        for (i in bin.indices){
            if(binNum % 10 == 1){
                result += (num * 1)
            }
            binNum /= 10
            num *= binCalc
        }

        return result
    }

	//2진수로 변환
    fun toBin(dec: Int): String{
        var result: String = ""
        var dec: Int = dec

        while(dec != 0){
            result = (dec % 2).toString() + result
            dec /= 2
        }

        if(result == "")
            result = "0"

        return result
    }