Informática, pregunta formulada por khandiaz44, hace 1 año

Ayuda con este programa Cambio de base a binario pero debe mostrar los residuos de manera inversa Les adjunto lo que tengo porfa ayuda

Adjuntos:

fv11: como tal te esta mostrando los residuos?
khandiaz44: porfa es convertiur el numero ingresado a binario
khandiaz44: ingrese numero :
218
11011010
khandiaz44: asi debe mostrarse el numero en binario
11011010
fv11: y te lo muestra como 01011011 ?
khandiaz44: no solo el 0
khandiaz44: Sub binario()
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
khandiaz44: hasta ahi he logrado hacer
fv11: vale
fv11: ya lo consegui

Respuestas a la pregunta

Contestado por fv11
0

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

Otras preguntas