Ich bin auf der Suche nach einer Möglichkeit, einen Bruch Octal in Hex-Fraktion und umgekehrt in Swift 3 zu konvertieren. Selbst geschriebenen Code ohne Drittanbieter-Bibliothek und Foundation. Zum Beispiel wandelt dieser Code Oktal Integer Hex:Wie konvertiert man in Swift 3 einen gebrochenen Octal in den Hex-Bruchteil und umgekehrt?
for num in OctalVal {
switch num {
case "0": result = result * 8
case "1": result = result * 8 + 1
case "2": result = result * 8 + 2
case "3": result = result * 8 + 3
case "4": result = result * 8 + 4
case "5": result = result * 8 + 5
case "6": result = result * 8 + 6
case "7": result = result * 8 + 7
default: return "Error"
}
}
n2 = result
while n2 > 0 {
c2 = n2 % 16
n2 = n2/16
k2.append("\(c2)")
}
for i in k2.reversed() {
if(i == "10"){
fs2 += "A"
}
else if(i == "11") {
fs2 += "B"
}
else if(i == "12") {
fs2 += "C"
}
else if(i == "13") {
fs2 += "D"
}
else if(i == "14") {
fs2 += "E"
}
else if(i == "15") {
fs2 += "F"
}
else {
fs2 += "\(i)"
}
}
return "\(fs2)"
}
Und dieses Hex Octal:
for num in Left {
switch num {
case "0": result += "0000"
break;
case "1": result += "0001"
break;
case "2": result += "0010"
break;
case "3": result += "0011"
break;
case "4": result += "0100"
break;
case "5": result += "0101"
break;
case "6": result += "0110"
break;
case "7": result += "0111"
break;
case "8": result += "1000"
break;
case "9": result += "1001"
break;
case "A": result += "1010"
break;
case "B": result += "1011"
break;
case "C": result += "1100"
break;
case "D": result += "1101"
break;
case "E": result += "1110"
break;
case "F": result += "1111"
break;
default: return "Error"
}
}
Zum Beispiel: 12D.3AF9F zu 455,1657476 (Octal)
Alle fraktionierte in Bezug auf Ideen Teil? Vielen Dank für Ihre Aufmerksamkeit auf meine Anfrage
Es ist fast die gleiche man denke nur, dass '0.3A (hex) = 3 * (16.01) + A * (16.01)^2'. Die 1-1-Zuordnung funktioniert jedoch nicht dort ... – Sulthan
Wandelt Hex in Binär um, mache ein Vielfaches von 3 in der Länge und konvertiere dann binär nach Oktal 3AF9F = "0011 1010 1111 1001 1111" = "001 110 101 111 100 111 110 "= 1657476. – vacawama