Лучшая функция Excel Bin2Dec (подписанная)? - PullRequest
0 голосов
/ 06 февраля 2011

Мне было интересно, написал ли кто-нибудь лучший макрос Bin2Dec VBA для Excel, чем тот, который был в комплекте.Я ищу функцию, которая может принимать произвольно большие двоичные числа (в пределах ~ 16 бит) и использует бит со знаком.Функция Excel BIN2DEC переполняется после 12 битов, и это, как правило, очень некрасиво (Excel не слишком хорош, так как числа также быстро переполняются).Любая помощь?

1 Ответ

0 голосов
/ 06 февраля 2011

Написал:

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

Эта ссылка заставила меня начать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...