Swift :: Aufgabe #172

1 Lösung Lösung öffentlich

Zahlen umwandeln: Binär zu Dezimal

Anfänger - Swift von Nachbar - 13.09.2017 um 14:19 Uhr
Schreibe eine Funktion, die Zahlen aus dem Dualsystem in Zahlen des Dezimalsystems umwandelt.

Beispiel:

Binär: 11010
Dezimal: 26

Lösungen:

vote_ok
von ariannozari (140 Punkte) - 23.11.2017 um 10:26 Uhr
Quellcode ausblenden Swift-Code

//  Write some awesome Swift code, or import libraries like "Foundation",
//  "Dispatch", or "Glibc"

func binumwandeln(wert: Int) -> String {
	var wert2 = wert
	var start = 0
	var temp = [String]()
	
	if wert2 < 0 {
		return "0"
	} else {
		start = startSetzen(wertX: wert2)
		repeat {
			if start > wert2 {
				start = start / 2
				temp.append("0")
			} else {
				temp.append("1")
				wert2 -= start
				start = start / 2 
			}
		
		} while (start > 0)
		if wert2 == 1 { 
			temp.append("1")
		}
	return ausgabe(temp:temp)
	}
	
	
}


func ausgabe(temp: [String]) -> String {
		var text = ""
		var temp2 = temp
		temp2.remove(at: 0)
		
		for zahl in temp2 {
			text += String(zahl)
		}
		return text		
}

func startSetzen(wertX: Int) -> Int {
	var temp = 1
	repeat {
		temp *= 2
	} while (temp <= wertX)
	return temp
}

extension String {
	func test(wert: Int) -> String {return binumwandeln(wert: wert)}
}

	
print(binumwandeln(wert: 967))	// 1111000111
print(binumwandeln(wert: 2))	// 10