USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (Operações Matemáticas)

Título da Dica:  Binário para Decimal, Decimal para Binário
Postada em 14/7/2003 por Yoshinaga            
'Binário para decimal
'Para converter um número binário para decimal, deve:
'Contar cada algarismo do número de traz para frente
'começando do 0:
'
'Ex:
' (1 0 1 0)-Binário
'  3 2 1 0
'
'Agora multiplicar cada algarismo por 2 elevado ao seu
'número correspondente e somar todos:
'
'
' (1*(2 ^ 3)) + (0*(2 ^ 2)) + (1 * (2 ^ 1)) + (0 * (2 ^ 0))
'   8         +      0      +        2       +       0
'   8+2=10
'
'   1010 binário = 10 decimal
'
'Construindo a função no VB:

Function BinaryToDecimal(StrNumber)
Dim tmpvar As Integer
Dim Mult

Mult = Len(StrNumber)
ReDim Chars(1 To Len(StrNumber))


For tmpvar = 1 To Len(StrNumber)
  Chars(tmpvar) = Mid$(StrNumber, tmpvar, 1)
Next


For tmpvar = 1 To Len(StrNumber)
Mult = Mult - 1
BinaryToDecimal = Val(BinaryToDecimal) + Val(Chars(tmpvar) * (2 ^ Mult))
Next
End Function


'Decimal para binário
'Para converter um número decimal para binário, deve-se
'dividir o número decimal pela base 2. O resto deve
'dar 1 ou 0. O resultado da divisão deve ser dividido por 2
'novamente e assim sucessivamente, até que o quociente seja
'menor que 2.
'Finalmente, temos que pegar somente o último quociente e
'em seguida todos os restos.
'EX:
'
'10 / 2
' 0   5  
'
' 5 / 2
' 1   2
'
' 2 / 2
' 0   1
'
'O número binário seria:
' 1010
'
'Construindo a função no VB:

Function DecimalToBinary(StrNumber)
Dim q
Dim d
Dim r
Dim N

Dim GetValue As String

N = StrNumber
'N |d_
'r  q

'q.d+r=N
'***********
'*r=N-(q.d)*
'***********
d = 2


Do While N >= d
q = Int(N / d)
r = N - (q * d)

N = q

GetValue = GetValue & r

Loop

DecimalToBinary = StrReverse(GetValue & q)
If StrNumber = 1 Then DecimalToBinary = 1

End Function

Function DecimalToBinary(StrNumber)
Dim q
Dim d
Dim r
Dim N

Dim GetValue As String

N = StrNumber
'N |d_
'r  q

'q.d+r=N
'***********
'*r=N-(q.d)*
'***********
d = 2


Do While N >= d
q = Int(N / d)
r = N - (q * d)

N = q

GetValue = GetValue & r

Loop

DecimalToBinary = StrReverse(GetValue & q)
If StrNumber = 1 Then DecimalToBinary = 1

End Function

 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página