[Swift] 진수 변환

2022. 6. 14. 13:46🐣/Algorithm

radix 사용 변환

var n = "A"
var hToD = Int(n, radix:16)!

print(hToD)
// MARK: - radix
var decimal = 12345
let dToB =  String(decimal, radix: 2)

print(dToB)

 

반복문 사용 변환

// MARK: -interactive
var interactiveNumberArray: Array<Int> = []

while (decimal != 0){
	interactiveNumberArray.append(decimal % 2)
	decimal = decimal / 2
}
print(interactiveNumberArray.reversed().map{String($0)}.reduce("", +))

 

재귀 사용 변환

// MARK: -recursive
var recursiveDecimal = 12345
var recursiveNumberArray: Array<Int> = []

recursive(recursiveDecimal)
func recursive(_ recursiveDecimal: Int) {
	if recursiveDecimal > 0 {
		var wr_recursiveDecimal = recursiveDecimal
		wr_recursiveDecimal /= 2
		recursive(wr_recursiveDecimal)
		recursiveNumberArray.append(recursiveDecimal % 2)
	}
}

print(recursiveNumberArray.map{String($0)}.reduce("", +))

진수변환