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.
Esta função usa a fórmula Dec2Bin do Excel.
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 de conversão VBA pura menos restritiva.
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
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
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