|
|
|
|
|
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
|
|
|
|
|