Abaixo, você terá acesso a algumas funções que permitem converter números decimais para o formato binário. Com elas, você economizará muito tempo. No entanto, é preciso ter algum conhecimento em VBA para realizar o procdimento.
Com o WorksheetFunction
Esta função usa a fórmula
Dec2Bin do Excel.
Argumentos
N [
Obrigatório] (Long): deve estar entre -512 e 511 (inclusive).
P [
Facultativo] (Long): Número de caracteres úteis.
Se P estiver omitido, DecToBin2 usa o mínimo de caracteres úteis.
Function Dec_Bin(ByVal N As Long, Optional P As Long) As String
If N > 511 Then
Dec_Bin = "Erro: N é muito grande! (N deve ser <= 511)"
ElseIf N < -512 Then
Dec_Bin = "Erro: N é muito pequeno! (N deve ser >= -512)"
Else
If P = 0 Then
Dec_Bin = WorksheetFunction.Dec2Bin(N)
Else
Dec_Bin = WorksheetFunction.Dec2Bin(N, P)
End If
End If
End Function
Função VBA
Função de conversão VBA pura menos restritiva.
Argumentos
N [
Obrigatório] (Long): Deve ser um número inteiro positivo
Function Dec_En_Bin(ByVal N As Long) As String
Dim strTemp As String
Do While N > 1
strTemp = N - 2 * (N \ 2) & strTemp
N = N \ 2
Loop
Dec_En_Bin = N & strTemp
End Function
Exemplo de chamada
Sub Test()
Dim Nb As Long
Nb = 50
Debug.Print Nb & "nos dá (com worksheetfunction): " & Dec_Bin(Nb)
Debug.Print Nb & "nos dá (com VBA): " & Dec_En_Bin(Nb)
Nb = 9000
Debug.Print Nb & "nos dá (com worksheetfunction): " & Dec_Bin(Nb)
Debug.Print Nb & "nos dá (com VBA): " & Dec_En_Bin(Nb)
End Sub
Diferença entre as duas fórmulas
A principal diferença entre as duas fórmulas é seu
alcance. Com a primeira função, números maiores que 511 retornarão uma mensagem de erro já que seu alcance, como demonstrado acima vai apenas de -512 a 511. Assim, caso você pretenda realizar a conversão de decimal para binário de valores maiores, dê preferência para a segunda função.
Foto: © dennizn - Shutterstock.com