Hallo zusammen,
ich möchte in Excel große dezimal Zahlen >2^30 (32-bit) in binäre umwandeln. Ich hab ca. 30000 Zeilen davon.
Die normal Formel =dezinbin(a1) funktioniert da nicht mehr.
Dann habe ich noch folgende Formel gefunden:
=SUMMENPRODUKT(GANZZAHL(REST(B4/2^(SPALTE(4:4)-1);2))*10^(SPALTE(4:4)-1)) selbst dort ist irgendwann Schluss
Deine Anfrage wurde an mich weitergeleitet mit der Bitte, Dir auf jeden Fall zu antworten, was ich hiermit tue. Leider kann ich Dir nicht helfen, da ich mit dieser Problemstellung noch nichts zu tun hatte. Falls Du eine ältere Excel-Version verwendest, könnte ein Update auf 2010 helfen, dort wurden meines Wissens etliche Kapazitäten z.T. deutlich erweitert. Viel Glück bei der Suche.
Hallo ich hab auch so ein Problem gehabt hier die Lösung:
Function DezToBin(DezZahl As Long, BinDigits As Integer) As String
Dim TempRest As Long
Dim BinKette As String
Dim ListOfDualValus(1 To 100) As Double
For i = 1 To BinDigits
ListOfDualValus(i) = 2 ^ (BinDigits - i)
Next i
TempRest = DezZahl
For i = 1 To BinDigits
If TempRest >= ListOfDualValus(i) Then
BinKette = BinKette + „1“
TempRest = TempRest - ListOfDualValus(i)
Else
BinKette = BinKette + „0“
End If
Next
'A: ohne die nullen
DezToBin = Right(BinKette, Len(BinKette) - InStr(1, BinKette, „1“, vbBinaryCompare) + 1)
'B: mit den angegeben Stellen
'DezToBin = BinKette
Public Function DezToBin(zahl) As String
Dim tmp As Variant
Dim L As Double
Dim s As String
tmp = CDec(zahl)
Dim P As Long
P = Log(zahl) / Log(2)
Redim b(P) As Byte
For L = P To 0 Step -1
Select Case tmp - 2 ^ L
Case Is = 0: b(L) = 49: tmp = CDec(tmp - 2 ^ L)
End Select
Next
If b(UBound(b)) = 48 Then Redim Preserve b(UBound(b) - 1)
DezToBin = StrReverse(StrConv(b, vbUnicode))
End Function