【发布时间】:2011-02-06 08:48:56
【问题描述】:
我想知道是否有人为 Excel 编写了比包含的更好的 Bin2Dec VBA 宏。我正在寻找一个可以采用任意大的二进制数(在 ~16 位内)并使用有符号位的函数。 Excel 的 BIN2DEC 函数在 12 位后溢出,而且通常非常难看(Excel 不太好,因为数字也很快溢出)。有什么帮助吗?
【问题讨论】:
我想知道是否有人为 Excel 编写了比包含的更好的 Bin2Dec VBA 宏。我正在寻找一个可以采用任意大的二进制数(在 ~16 位内)并使用有符号位的函数。 Excel 的 BIN2DEC 函数在 12 位后溢出,而且通常非常难看(Excel 不太好,因为数字也很快溢出)。有什么帮助吗?
【问题讨论】:
写了一个:
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
【讨论】: