Você está na página 1de 6

Realizar una calculadora binaria

1. Formulario
Option Explicit
Dim i As Integer
Dim X As Integer
Dim Numero As String
Dim Total As Long
Dim Constante, Temp As Integer
Dim resto As String
Dim DecNum As Double
Dim DecNum1 As Double
Dim BinStr As String
Dim dato2, DecNum2, suma, suma1 As Double
Dim dato As Double
Dim resultado As String
Dim Operacion As Double
Private Sub CmdBinario_Click()
1

Numero = TxtResultado.Text
Constante = 1
Do
Temp = Val(Right(Numero, 1))
Numero = Left(Numero, Len(Numero) - 1)
Total = Total + (Temp * Constante)
Constante = Constante * 2
Loop Until Len(Numero) = 0
TxtResultado = Total
End Sub
Private Sub CmdDecimal_Click()
Numero = TxtResultado.Text
Do Until Numero < 2
resto = resto & Str(Numero Mod 2)
Numero = Int(Numero / 2)
Loop
resto = resto & Numero
TxtResultado = StrReverse(resto)
End Sub
Private Sub CmdIgual_Click()
If Operacion = 1 Then
DecNum1 = BinToDec(dato)
dato2 = Val(TxtResultado.Text)
DecNum2 = BinToDec(dato2)
suma = DecNum1 + DecNum2
resultado = DecToBin(suma)
TxtResultado.Text = resultado
Else
If Operacion = 2 Then
DecNum1 = BinToDec(dato2)
dato = Val(TxtResultado.Text)

DecNum2 = BinToDec(dato)
suma1 = DecNum1 - DecNum2
resultado = DecToBin(suma1)
TxtResultado.Text = resultado
Else
If Operacion = 3 Then
DecNum1 = BinToDec(dato2)
dato = Val(TxtResultado.Text)
DecNum2 = BinToDec(dato2)
suma1 = DecNum1 * DecNum2
resultado = DecToBin(suma1)
TxtResultado.Text = resultado
Else
If Operacion = 4 Then
DecNum1 = BinToDec(dato2)
dato = Val(TxtResultado.Text)
DecNum2 = BinToDec(dato2)
suma1 = DecNum1 / DecNum2
resultado = DecToBin(suma1)
TxtResultado.Text = resultado
End If
End If
End If
End If
End Sub
Private Sub CmdMas_Click()
Operacion = 1
dato = Val(TxtResultado.Text)
TxtResultado = ""
End Sub
Private Sub CmdMenos_Click()

Operacion = 2
dato2 = Val(TxtResultado.Text)
TxtResultado = ""
End Sub
Private Sub CmdNuevo_Click()
TxtResultado = ""
End Sub
Private Sub CmdPara_Click()
Operacion = 4
dato2 = Val(TxtResultado.Text)
TxtResultado = ""
End Sub
Private Sub CmdPor_Click()
Operacion = 3
dato2 = Val(TxtResultado.Text)
TxtResultado = ""
End Sub
Private Sub CmdSalir_Click()
End
End Sub
Private Sub OptBinario_Click()
CmdBinario.Enabled = False
DecNum = Val(TxtResultado.Text)
If (DecNum <> 0) Then
TxtResultado.Text = DecToBin(DecNum)
End If
TxtResultado.Visible = True
End Sub
Private Sub OptDecimal_Click()
If OptBinario.Enabled = True Then
CmdBinario.Enabled = True

BinStr = TxtResultado.Text
TxtResultado.Text = BinToDec(BinStr)
End If
End Sub

2.Mdulo
Public Function DecToBin(ByVal DecNum As Double) As String
Dim BinStr As String
BinStr = ""
Do While DecNum <> 0
If (DecNum Mod 2) = 1 Then
BinStr = "1" & BinStr
Else
BinStr = "0" & BinStr
End If
DecNum = DecNum \ 2
Loop
If BinStr = "" Then BinStr = "0"
DecToBin = BinStr
End Function
Public Function BinToDec(ByVal BinStr As String) As Double
Dim mult As Double
Dim DecNum As Double
mult = 1
DecNum = 0
Dim i As Integer
For i = Len(BinStr) To 1 Step -1
If Mid(BinStr, i, 1) = "1" Then
DecNum = DecNum + mult
End If
mult = mult * 2
Next i
5

BinToDec = DecNum
End Function

Você também pode gostar