Mid binario-hexadecimal

La presente es para solicitarles lo siguiente : Necesito un algoritmo o función por medio de la cual pueda realizar cambios de binario a hexadecimal. También un programa por medio del cual pueda hacer lo siguiente :
Tengo en el formulario dos opciones : 0-1(dos check box), también tengo una cadena de binarios (supongamos 0000111011) y necesito pasar esta cadena a hexadecimal y mostrarla en cuadro de texto por medio de un botón de comando; la idea seria que cuando el usuario escoja una de las opciones inmediatamente se cambie esta opción en la posición establecida (supongamos en la posición 6) e inmediatamente me muestre el cambio en hexadecimal.

4 respuestas

Respuesta
1
Para convertir un numero binario a hexadecimal, primero lo convierto a decimal y luego a hexadecimal. Te pongo aquí un pequeño ejemplo de como hacerlo que utiliza una función que pasa de binario a decimal y luego el decimal lo conviertes a hexadecimal con la función Hex()
Private Function BinarioADecimal(nBinario As String) As Long
Dim nDecimal As Long
Dim Indice As Long
Dim nBits As Long
nBits = Len(nBinario)
For Indice = nBits To 1 Step -1
If Mid$(nBinario, Indice, 1) = "1" Then
If nBits - Indice > 30 Then
nDecimal = nDecimal Or -2147483648#
Else
nDecimal = nDecimal + 2 ^ (nBits - Indice)
End If
End If
Next Indice
BinarioADecimal = nDecimal
End Function
Para llamar ha esta funcion puedes hacerlo asi:
Dim NumeroDecimal As Long
NumeroDecimal = BinarioADecimal("101011")
y luego el numero obtenido lo conviertes a hexadecimal
Dim NumeroHexadecimal As String
NumeroHexadecimal = Hex(NumeroDecimal)
Y ya lo tienes.
Respecto a la segunda parte de la consulta, en la que me dices lo del formulario y los checkbox, no te he entendido lo que pretendes hacer, si me lo explicaras un poco mejor estaría encantado de ayudarte.
Respuesta
1
Aquí te adjunto dos rutinas que tu pueden ser útiles:
Function ConvertirBinario(numero$) As String
'Convierte un numero de decimal a binario
Dim digito As Integer, temp As String
temp = ""
Do
digito = numero Mod 2
If digito = 0 Then
temp = "0" + temp
Else
temp = "1" + temp
End If
numero = numero \ 2
Loop Until numero = 0
ConvertirBinario = temp
End Function
Function HexadecimalToDecimal(numero$) As Long
'Convierte un numero de hexadecimal a decimal
Dim digito As Long
Dim res As Long, letra As String
numero = Strings.StrReverse(numero)
numero = UCase(numero)
For contador = Len(numero) To 1 Step -1
letra = Mid(numero, contador, 1)
If letra >= "A" And letra <= "F" Then
digito = Asc(letra) - 55
Else
digito = Val(letra)
End If
digito = digito * (16 ^ (contador - 1))
res = res + digito
Next
HexadecimalToDecimal = res
Debug.Print Hex(res)
End Function
Para convertir un numero de decimal a hexadecimal hay que usar la función hex
Ej:
Debug. Print hex(10)
Devolveria A
Respuesta
¿Exactamente en que quieres que te ayude? ¿Estas familiarizado con la programación y con Visual Basic? Si lo que deseas es que realice un form completo enviame datos un poco más concretos y lo estudiaré...
Respuesta
Ese tipo de cambios lo puedes hacer usando funciones de VB... la función HEX de transforma un numero decimal a Hexadecimal, no recuerdo el nombre de la otra función. Pero en la ayuda de VB hay un listado con todas las funciones del VB

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas