Weiss jemand eine Loesung, wenn noetig ueber eine mathematischen Funktion?
Beispiel:
Zelle A1: 1000111101001001110001
Zelle A2: =BIN2DEC(A1)
Ergibt z.Zt. #NUM Fehler (#Zahl in Deutsch).
Danke,
Rascal
Function MyBin2Dec(x As String) As Long
Dim rest As String
Dim temp As Long
Dim i As Integer
rest = x
temp = 0
For i = 0 To Len(x) - 1
temp = temp + 2 ^ i * Right(rest, 1)
rest = Left(rest, Len(rest) - 1)
Next i
MyBin2Dec = temp
End Function
Um eine lange Binärzahl (z.B. größer als 10 Bit) in eine Dezimalzahl umzuwandeln, kannst Du die folgende Methode verwenden:
Zelle A1: Gib die Binärzahl ein (z.B. 1000111101001001110001).
Zelle A2: Verwende die Formel, um die Binärzahl in Dezimal umzuwandeln:
=2^4*BIN2DEC(MID(A1;1;8)) + 2^3*BIN2DEC(MID(A1;9;8)) + 2^2*BIN2DEC(MID(A1;17;8)) + 2^1*BIN2DEC(MID(A1;25;8)) + 2^0*BIN2DEC(MID(A1;33;8))
(Diese Formel ist für eine 36-Bit-Zahl anpassbar, indem Du die Teile entsprechend extrahierst.)
Drücke Enter: Das Ergebnis wird in Zelle A2 angezeigt.
2^n) richtig eingestellt sind für die Anzahl der Bits.Falls Du keine VBA-Programmierung verwenden möchtest, kannst Du auch die Excel-Funktion BIN2DEC für kleinere Zahlen (bis 10 Bit) nutzen und die Binärzahlen in kleinere Segmente aufteilen, um sie dann zusammenzusetzen.
BIN2DEC auf jedes Segment an.Hier sind einige Beispiele für die Umwandlung:
22-Bit Zahl:
1000111101001001110001=16384*BIN2DEC(MID(A1;1;8)) + 64*BIN2DEC(MID(A1;9;8)) + BIN2DEC(MID(A1;17;8))24-Bit Zahl:
000010101111101110111010=65536*BIN2DEC(MID(A1;1;8)) + 256*BIN2DEC(MID(A1;9;8)) + BIN2DEC(MID(A1;17;8))MyBin2Dec, um die Umwandlung zu automatisieren.1. Kann ich eine 255-Bit Binärzahl in Excel umwandeln? Ja, aber die Darstellung als Dezimalzahl kann Probleme verursachen, da der Datentyp Long nur 64 Bit unterstützt. Du musst die Zahl in kleinere Segmente aufteilen.
2. Gibt es eine Möglichkeit, die Umwandlung ohne VBA zu machen?
Ja, Du kannst die MID und BIN2DEC Funktionen verwenden, um die Binärzahlen in kleinere Teile zu zerlegen und sie dann zusammenzusetzen.