Decimal to binary conversion for large numbers in Excel

后端 未结 12 2120
长情又很酷
长情又很酷 2020-12-14 02:31

I have some large numbers in an Excel sheet and I want to convert them to binary.

e.g.

12345678  
965321458  
-12457896
12条回答
  •  独厮守ぢ
    2020-12-14 02:58

    While I didn't write this for negatives or decimals, it should be relatively easy to modify. This VBA will convert any super large (or not so large if you want, but that wasn't the point) decimal up to the converted binary result containing up to 32767 digits (maximum string length in VBA).

    Enter decimal in cell "A1" as a string, result will be in "B1" as a string.

    Dim NBN As String
    
    Dim Bin As String
    
    5 Big = Range("A1")
    
    AA = Len(Big)
    
    For XX = 1 To AA
    
    L1 = Mid(Big, XX, 1) + CRY
    
    CRY = 0
    
    If L1 = 0 Then
    
    FN = "0"
    
    GoTo 10
    
    End If
    
    If Int(L1 / 2) = L1 / 2 Then
    
    FN = L1 / 2
    
    GoTo 10
    
    End If
    
    If Int(L1 / 2) <> L1 / 2 Then
    
    FN = Int(L1 / 2)
    
    CRY = 10
    
    GoTo 10
    
    End If
    
    10 NBN = NBN & FN
    
    Next XX
    
    If Left(NBN, 1) = "0" Then
    
    NBN = Right(NBN, (Len(NBN) - 1))
    
    End If
    
    If CRY = 10 Then Bin = "1" & Bin Else Bin = "0" & Bin
    
    Range("A1") = NBN
    
    Range("A2") = Bin
    
    If Len(NBN) > 0 Then
    
    NBN = ""
    
    CRY = 0
    
    GoTo 5
    
    End If
    

提交回复
热议问题