Problema de visualización de datos de VB
Varias conversiones
Función Bin2Dec(InputData As String) As Double 'Convertir binario a decimal <. /p>
Dim DecOut As Double:Dim I As Integer:Dim LenBin As Double:Dim JOne As String
LenBin = Len(InputData) 'Verifica si es un número binario
Para I = 1 a LenBin
JOne = Mid(InputData, I, 1)
Si JOne <> "0" y JOne <>;"1" entonces< / p>
MsgBox "NO ES UN NÚMERO BINARIO", vbCritical
Función de salida
Finalizar si
Siguiente I
DecOut = 0
Para I = Len(InputData) a 1 paso -1
Si Mid(InputData, I, 1) = "1" Entonces
DecOut = DecOut + 2 ^ (Len(InputData) - I)
Finalizar si
Siguiente I
Bin2Dec = DecOut
Finalizar función
Función Dec2Bin(InputData Como Doble) Como Cadena 'Conversión Decimal A Binario
Dim Quot Como Doble: Atenuar Resto Como Doble:Atenuar BinOut Como Cadena:Atenuar I Como Entero
Atenuar NewVal como doble:Atenuar TempString como cadena.Atenuar TempVal como doble
Atenuar BinTemp como cadena:Atenuar BinTemp1 como cadena:Atenuar PosDot como entero
Atenuar Temp2 como cadena
'Comprueba el punto decimal
'Comprueba el punto decimal
Si InStr(1, CStr(InputData), ".") Entonces
MsgBox "Solo se pueden convertir números enteros", vbCritical
GoTo eds
End If
BinOut = ""
NewVal = InputData
DoAgain: Iniciar cálculo
NewVal = (NewVal / 2) 'Si hay resto
If InStr(1, CStr(NewVal), "." ) Luego
BinOut = BinOut + "1" 'Obtener el resto
NewVal = Format(NewVal, "#0")
NewVal = (NewVal - 1) p>
Si NewVal <1 entonces
Ir a DoneIt
Finalizar si
p>
Else
BinOut = BinOut + "0"
Si NewVal < 1 entonces
Ir a DoneIt
Finalizar si
End If
GoTo DoAgain
DoneIt:
BinTemp = "" 'Invertir el resultado
Para I = Len(BinOut) A 1 Paso -1
BinTemp1 = Mid(BinOut, I, 1)
BinTemp = BinTemp + BinTemp1
Siguiente I
BinOut = BinTemp 'Resultado de salida
Dec2Bin = BinOut
eds:
Función final
Función Bin2Hex( InputData como cadena) como cadena 'Convertir binario a hexadecimal
Dim I como entero:Dim LenBin como entero:Dim JOne como cadena:Dim NumBlocks como entero
Dim FullBin como String.Dim HexOut As String:Dim TempBinBlock As String
Dim TempHex As String
LenBin = Len(InputData) 'Verifica si es un número binario
Para I = 1 a LenBin
JOne = Mid(InputData, I, 1)
Si JOne <> "0" y JOne <> NÚMERO BINARIO ", vbCritical
Salir de la función
Finalizar si
Siguiente I 'Establecer variable binaria
FullBin = InputData ' Si la longitud del valor Si es menor que 4, agregue 0
Si LenBin <4 Entonces
Si LenBin = 3 Entonces
FullBin = "1 número binario" Entonces
MsgBox "NO ES UN NÚMERO BINARIO" Luego
Salir.
FullBin = "0" + FullBin
ElseIf LenBin = 2 Entonces
FullBin = "00" + FullBin
ElseIf LenBin = 1 Entonces
FullBin = "000" + FullBin
ElseIf LenBin = 0 Entonces p>
MsgBox "No hay nada..." , vbCritical
ElseIf LenBin = 0 Entonces
MsgBox "No hay nada..." , vbCritical p>
Salir de la función
Finalizar si
NumBlocks = 1
Ir a DoBlocks
Finalizar si
Si LenBin = 4 Entonces
NumBlocks = 1
<p>Ir a DoBlocks
Finalizar si
Si LenBin>4 Entonces
Atenuar TempHold como moneda
Atenuar TempDiv como moneda
p>Atenuar AfterDot como entero
Atenuar Pos como entero
TempHold = Len(InputData)
TempDiv = (TempHold / 4) p >
Pos = InStr(1, CStr(TempDiv), ".")
Si Pos = 0 Entonces
NumBlocks = TempDiv
Ir a DoBlocks
End If
AfterDot = Mid(CStr(TempDiv), (Pos + 1))
Si AfterDot = 25 Entonces
FullBin = "000" + FullBin
NumBlocks = (Len(FullBin) / 4)
ElseIf AfterDot = 5 Then
FullBin = "00" + FullBin
NumBlocks = (Len(FullBin) / 4)
ElseIf AfterDot = 75 Entonces
FullBin = "0" + FullBin
NumBlocks = (Len(FullBin) / 4)
Si
DoBlocks:
HexOut = ""
Para I = 1 A Len(FullBin) Paso 4
TempBinBlock = Mid(FullBin, I, 4)
Si TempBinBlock = "0000" Entonces
HexOut = HexOut + " 0 "
ElseIf TempBinBlock = "0001" Entonces
HexOut = HexOut + "1"
ElseIfTempBinBlock = "0010" Entonces
HexOut = HexOut + "2"
ElseIf TempBinBlock = "0011" entonces
HexOut = HexOut + "3"
ElseIfTempBinBlock = "0100" entonces p >
HexOut = HexOut + "4"
ElseIf TempBinBlock = "0101" entonces
HexOut = HexOut + "5"
ElseIf TempBinBlock= entonces
HexOut = HexOut + "6"
ElseIf TempBinBlock = "0111" entonces
HexOut = HexOut + "7"
ElseIf TempBinBlock ="Entonces
HexOut = HexOut + "A"
ElseIf TempBinBlock = "1011" Entonces
HexOut = HexOut + "B"
ElseIf TempBinBlock = "1100"entonces
p>
HexOut = HexOut + "C"
ElseIf TempBinBlock = "1101" Entonces
HexOut = HexOut + "D"
ElseIf TempBinBlock = "1110" Entonces
HexOut= HexOut + "E"
ElseIf TempBinBlock = "1111" Entonces
HexOut = HexOut + "F"
Finalizar si
Siguiente I
Bin2Hex = HexOut
eds:
Finalizar función
Función Hex2Bin(InputData como cadena) como cadena
Atenuar I como entero:Atenuar BinOut como cadena:Atenuar Lenhex como entero
InputData = UCase(InputData)
Lenhex = Len(InputData)
Para I = 1 a Lenhex
Si esNumeric(Mid(InputData, I, 1)) Entonces
Vaya a NumOk p> p>
ElseIf Mid(InputData, I, 1) = "A" entonces
Vaya a NumOk
ElseIf Mid(InputData, I, 1) = "B " luego
Vaya a NumOk
ElseIf Mid(InputData, I, 1) = " C" Luego
Vaya a NumOk
ElseIf Mid (InputData, I, 1) = "D" entonces
Vaya a NumOk
ElseIf Mid(InputData, I, 1) = "E" entonces
Ir a NumOk
ElseIf Mid(InputData, I, 1) = "F" Entonces
Ir a NumOk
Else
MsgBox "El número proporcionado no está en formato hexadecimal", vbCritical
Función de salida
Finalizar si
NumOk:
Siguiente I
BinOut = ""
Para I = 1 a Lenhex
Si Mid(InputData, I, 1) = "0" Entonces
BinOut = BinOut + "0000"
ElseIf Mid(InputData, I, 1) = "1" entonces
BinOut = BinOut + "0001"
ElseIf Mid (InputData, I, 1) = "2" entonces
BinOut = BinOut + "0010"
ElseIf Mid(InputData, I, 1) = "3" entonces
BinOut = BinOut + "0011"
ElseIf Mid(InputData, I, 1) = "4" entonces
BinOut = BinOut + "0110"
ElseIf Medio (InputData, I, 1) = "7" entonces
Después
BinOut = BinOut + "0111"
ElseIf Mid(InputData, I, 1) = "8" Entonces
BinOut = BinOut + "1000"
ElseIf Mid(InputData, I, 1) = "9" entonces
BinOut = BinOut + "1001"
ElseIf Mid(InputData, I, 1) ) = "A" entonces
BinOut = BinOut + "1010"
ElseIf Mid(InputData, I, 1) = "B" entonces
BinOut = BinOut + "1011"
ElseIf Mid(InputData, I, 1) = "C" entonces
BinOut = BinOut + "1100"
ElseIf Mid( InputData, I, 1) = "D" entonces
BinOut = BinOut + "1101"
ElseIf Mid(InputData, entonces
ElseIf Mid(InputData, I, 1) = "E" Entonces
ElseIf Mid(InputData, I, 1) = "E" Entonces
ElseIf Mid(InputData, I, 1) = "E" ThenElseIf Mid(InputData, I, 1) = "8" Then
DecOut = DecOut + (8 * HexStep)
ElseIf Mid(InputData, I, 1) = "9" Entonces
DecOut = DecOut + (9 * HexStep)
ElseIf Mid(InputData, I, 1) = "A" Entonces
DecOut = DecOut + ( 10 * HexStep)
ElseIf Mid(InputData, I, 1) = "B" entonces
DecOut = DecOut + (11 * HexStep)
ElseIf Mid (InputData, I, 1) = "C" entonces
DecOut = DecOut + (12 * HexStep)
ElseIf Mid(InputData, I. 1) = "D" entonces
DecOut = DecOut + (12 * HexStep)
ElseIf Mid(InputData, I, 1) = "D" entonces
DecOut = DecOut + (13 * HexStep)
ElseIf Mid(InputData, I, 1) = "E" entonces
DecOut = DecOut + (14 * HexStep)
ElseIf Mid(
Finalizar si
Siguiente I
Hex2Dec = DecOut
eds:
Finalizar función
Llamar:
Sub privado cmdbin2hex_Click()
txthex .Text = Bin2Hex(txtbinary.Text)
Fin Sub
Privado sub c
mddec2bin_Click()
Si esNumeric(txtdec2bin.Text) Entonces
txtdec2bin2.Text = Dec2Bin(txtdec2bin.Text)
Finalizar si
End Sub
Sub privado cmdDecHex_Click()
Si esNumeric(txtDecimal.Text) Entonces
txtdechex.Text = Hex(CDbl(txtDecimal.Text))
Else
MsgBox "No es un número.", vbCritical
End If
End Sub
Privado Sub cmdhex2bin_Click()
txtbinary2.Text = Hex2Bin(txthex2.Text)
End Sub
Sub privado cmdhexdec_Click()
txtdec2 .Text = CStr(Hex2Dec(txthexdec.Text))
End Sub