Transformacion de numero base decimal a binario

17/08/2010 - 14:55 por borix | Informe spam
Hola a todos
Tengo el siguiente numero:
03605727571903262740
en el calc.exe lo paso a binario y me retorna el siguiente resultado:
11001000001010000111100001111101101000001000000011000000010100
pero desde VB6 no he podido lograr esto, ya que he probado con
distintas funciones pero todas me arrojan error por desvordamiento. y
las que me funcionan toman el numero como si fuere Texto y lo pasan
ascii, lo que no me sirve.
como puedo lograr el mismo resultado que logro con calc.exe?
ya que tengo una aplicacion que debe leer tickets con un lector de
codigos de barra y el numero que les menciono trae codificada
informacion para el ingreso de otros datos
me pueden ayudar
Gracias
 

Leer las respuestas

#1 Ignacio
30/08/2010 - 13:52 | Informe spam
¡Hola, Borix!

Prueba con la siguiente función. Se limita a números enteros de hasta
28 dígitos.

Public Function DecABin(sDec As String) As Variant
'DecABin. Creado el 30-Ago-2010. Convierte un número decimal a binario
Dim núm As Variant, bin As Variant, i As Integer, sBin As String

núm = CDec(sDec)
bin = CDec(1)
While núm > bin
bin = bin * 2
i = i + 1
Wend
For i = i To 0 Step -1
If núm >= bin Then
sBin = sBin & 1
núm = núm - bin
Else
sBin = sBin & 0
End If
bin = bin / 2
Next
If Asc(sBin) = 48 And Len(sBin) > 1 Then sBin = Mid$(sBin, 2) 'Si
empieza por cero se suprime excepto cuando es "0"
DecABin = sBin
End Function

Espero que te sirva de ayuda.

Un saludo,
Ignacio Salas.

Preguntas similares