Ayuda con este programa Cambio de base a binario pero debe mostrar los residuos de manera inversa Les adjunto lo que tengo porfa ayuda
218
11011010
11011010
Dim i As Integer
Dim vector(100) As Integer
Dim num As Integer
Dim dividendo As Integer
Dim divisor As Integer
Dim residuo As Integer
Dim cociente As Integer
dividendo = num
divisor = 2
i = 0
num = InputBox("ingrese numero:")
While (dividendo > divisor)
cociente = dividendo / divisor
residuo = dividendo Mod divisor
vector(i) = residuo
i = i + 1
dividendo = cociente
Wend
vector(i) = dividendo
For j = i To j Step -1
MsgBox (vector(j))
Next
End Sub
Respuestas
Respuesta: si te sirvió marcala como mejor respuesta, la explicación esta debajo.
Sub binario()
Dim num, residuo, dividendo As Integer
Dim resultado As String
num = InputBox("Digite su numero:")
dividendo = num
resulado = ""
While (dividendo > 0)
residuo = dividendo Mod 2
dividendo = dividendo \ 2
resultado = residuo & resultado
Wend
MsgBox ("el binario de " & num & " es:" & resultado)
End Sub
Explicación: este programa lo tenia en java, la complejidad del asunto fue volver a programar en vba ya que no usaba esto hace mucho dado esto estaba confundiendo los operadores aritméticos te aclaro existen dos manera de hacer una division en vba la primera es usando el tipico "/" pero esto nos dara un cociente decimal y esto nos dara un par de problemas y tambien existe "\" el cual nos dara un resultado entero el cual es el que usaremos para esta macro
te explico mi versión del código, definí las variables num(recibirá el parámetro del input), dividendo sera quien reciba lo que esta almacenado en num y residuo lo que nos quedara después de que se haga el modulo. Hay una variable mas llamada resultado definida como un string esto para organizar el binario de una manera mas sencilla sin utilizar vectores(cabe aclarar que si es posible)
el codigo empieza con un input solicitando un numero, dividendo sera quien almacene dicho numero, pasamos a un ciclo while el cual analizara la condición de que el dividendo debe ser mayor que 0, dentro del ciclo puse que el residuo fuese igual al modulo del dividendo entre 2, seguido en la variable resultado se estará concatenando los residuos de manera de derecha a izquierda, seguido se realiza que el dividendo debe ser dividido entre 2 y asi sucesivamente, al final se envía un msgbox con el binario ordenado