2017-01-08 2 views
3

Ich versuche, eine 12-stellige Oktalzahl in binäreOktal für 12-stellige Zahlen in Excel Binär

Aber wie für Zahlen in Excel eingebaute Funktion OCT2BIN nicht funktionieren sieht konvertieren mehr als 517

So habe ich versucht, teilen sie die Zahlen und verketten sie, aber es hat nicht funktioniert

I

versucht
=OCT2BIN(MID(A2,1,2))&OCT2BIN(MID(A2,3,2))&OCT2BIN(MID(A2,5,2))&OCT2BIN(MID(A2,7,2))&OCT2BIN(MID(A2,9,2))&OCT2BIN(MID(A2,11,2)) 

zum Beispiel Octal auf binäre der Zahl

123456765432 

ist

1010011100101110111110101100011010 

aber meine Formel kehrt

101011100101110111110101100110100 

Ich verstehe, dass die Formel nicht funktioniert, weil ich nicht die Zahlen brechen sollte und sie verketten. Aber ich bin mir nicht sicher, wie man damit in Excel umgehen kann

gibt es eine Möglichkeit, 12-stellige Oktalzahlen in binäre umzuwandeln?

Antwort

3

Die Verkettung der Funktion ist kein Problem, da jede Ziffer in einer Oktalzahl genau 3 Ziffern in binär darstellt. Ihr Problem besteht darin, dass führende Nullen weggelassen werden, z. in Ihrem Beispiel zurückgegeben 34o = 011.100, aber die erste 0 nicht, so dass Sie nur verketten 11100 Die OCT2BIN Funktion hat, in dem ein weiteres Argument die Anzahl der Ziffern bestimmen können zurückgegeben:

OCT2BIN(34) = 11100 
OCT2BIN(34, 6) = 011100 

Ab Leistung: Sie können konvertieren 3 Oktalziffern auf einmal statt nur 2.

+0

Danke Jan, 3 Ziffern könnten Werte erhalten mehr als 517 –

+1

@vignesh Der Maximalwert für 3 Stellen in Oktal-777 ist, die gleich 511 in Dezimal – JanB

+0

Danke Jan Ich wollte auch zuerst 27 Bits der Binärzahl in Dezimal konvertieren und ich versuchte dies, es scheint nicht zu arbeiten = BIN2DEC (MID (B2,1,9)) & BIN2DEC (MID (B2,10 , 9)) & BIN2DEC (MID (B2,20,9)) eine Idee, warum es nicht funktioniert? –

2

dies versuchen, ich habe das Ergebnis überprüft enter image description here

+0

Danke, upvoted.Ich wollte auch die ersten 27 Bits der Binärzahl in Dezimalzahlen umwandeln und das habe ich versucht, es scheint nicht zu funktionieren = BIN2DEC (MID (B2,1,9)) & BIN2DEC (MID (B2,10,9)) & BIN2DEC (MID (B2,2 0,9)) eine Idee, warum es nicht funktioniert? –

4

Seit excel-vba ist auch markiert, VBA mit diesem überhaupt allgemeinere gelöst werden könnte.

Public Function myDec2Bin(ByVal decValue As Double) As String 
Select Case decValue 
    Case 0 
    myDec2Bin = "0" 
    Case 1 
    myDec2Bin = "1" 
    Case Else 
    myDec2Bin = myDec2Bin(Int(decValue/2)) & IIf(decValue/2 = Int(decValue/2), "0", "1") 
End Select 
End Function 

Public Function myOct2Dec(octValue As String) As Double 
Dim decValue As Double 
For i = 0 To Len(octValue) - 1 
    decValue = decValue + Mid(octValue, i + 1, 1) * (8^(Len(octValue) - 1 - i)) 
Next 
myOct2Dec = decValue 
End Function 

Public Function myOct2Bin(octValue As String) As String 
Dim decValue As Double 
decValue = myOct2Dec(octValue) 
myOct2Bin = myDec2Bin(decValue) 
End Function 

Diejenigen UDF können alle wie als Zellformeln verwendet werden:

=myOct2Bin(A2)