2011-02-06 69 views
0

我想知道是否有人为Excel写了比所包含的更好的Bin2Dec VBA宏。我正在寻找一个函数,可以采取任意大的二进制数(在〜16位),并使用有符号位。 Excel的BIN2DEC函数在12位后溢出,并且通常非常难看(因为数字快速溢出,所以Excel不太好)。任何帮助?更好的Excel Bin2Dec函数(签名)?

回答

0

撰写了1:

Function Bin2SignedDec(sMyBin As String) As Long 
    Dim x As Integer 
    Dim iLen As Integer 
    Dim sign As Boolean 
    Dim tmp As String 

    sign = Mid(sMyBin, 1, 1) = "1" 


    iLen = Len(sMyBin) - 1 
    For x = 0 To iLen 
     tmp = Mid(sMyBin, iLen - x + 1, 1) 
     If sign Then 
      If tmp = "1" Then 
       tmp = "0" 
      Else 
       tmp = "1" 
      End If 
     End If 
     Bin2SignedDec = Bin2SignedDec + _ 
      tmp * 2^x 
    Next 
    If sign Then 
     Bin2SignedDec = (Bin2SignedDec * -1) - 1 
    End If 

End Function 

This link got me started