decimal/binario

27/01/2009 - 10:58 por Victor | Informe spam
¿Por que al poner un numero grande ejemplo 1946 y pasarlo a binario me sale
el error #NUM??

"Esta es la Explicacion" Si el argumento número < -512 o si número > 511,
DEC.A.BIN devuelve el valor de error #¡NUM!

Pero cómo puedo hacer una hoja y que me represente en binario, cualquier
numero que yo le ponga , por ejemplo el 4673


Gracias
 

Leer las respuestas

#1 Juan M
27/01/2009 - 15:03 | Informe spam
"Victor" escribió
¿Por que al poner un numero grande ejemplo 1946 y pasarlo a binario me
sale
el error #NUM??

"Esta es la Explicacion" Si el argumento número < -512 o si número > 511,
DEC.A.BIN devuelve el valor de error #¡NUM!

Pero cómo puedo hacer una hoja y que me represente en binario, cualquier
numero que yo le ponga , por ejemplo el 4673


Gracias



Hola Victor,

Te paso dos funciones que he encontrado:

Un saludo,
Juan

de:
http://foros.softonic.com/programac...-6-a-22573

Public Function Dec2Bin(numero As Integer) As String
If numero <= 2 Then 'Caso Base
Dec2Bin = (numero \ 2) & (numero Mod 2)
Else 'Caso Recursivo
Dec2Bin = Dec2Bin(numero \ 2) & numero Mod 2
End If
End Function

de: http://www.visualbasic.happycodings...code4.html
Public Function DecToBin(DecNum As String) As String
Dim BinNum As String
Dim lDecNum As Long
Dim i As Integer

On Error GoTo ErrorHandler

' Check the string for invalid characters
For i = 1 To Len(DecNum)
If Asc(Mid(DecNum, i, 1)) < 48 Or _
Asc(Mid(DecNum, i, 1)) > 57 Then
BinNum = ""
Err.Raise 1010, "DecToBin", "Invalid Input"
End If
Next i

i = 0
lDecNum = Val(DecNum)

Do
If lDecNum And 2 ^ i Then
BinNum = "1" & BinNum
Else
BinNum = "0" & BinNum
End If
i = i + 1
Loop Until 2 ^ i > lDecNum
' Return BinNum as a String
DecToBin = BinNum
ErrorHandler:
End Function

Preguntas similares