Informática, pregunta formulada por ayudador69, hace 8 días

Un programador está atrapado en un problema, su software genera los resultados en binario (0 y 1) y el necesita que el resultado esté en números decimales (0 al 9), crea un código que realice la conversion ​

Respuestas a la pregunta

Contestado por Tenhou
0

Respuesta:

Algoritmo turin

binario<-generarBinario(5) //prueba cambiando el valor del parametro usa numeros positivos

Escribir "Binario generado: ",binario

Escribir "Decimal correspondiente: ",binarioAdecimal(binario)

FinAlgoritmo

SubAlgoritmo decimal<-binarioAdecimal(bin) //este sub algoritmo recibe como parametro una cadena de un numero en binario

decimal<-0 //Variable para guardar el decimal equivalente

//Ciclo FOR, que recorre cada caracter de la cadena de 1s y 0s, y los eleva al numero 2 con la posicion

//representativa del bit binario, ejemplo un 1 en la posicion 5 seria 2^5 =32, eso lo hace siempre

//y cuando el bit sea 1 ya que los bit ceros no se toman en cuanta su posicion

para x<-1 hasta Longitud(bin) Hacer

 si Subcadena(bin,x,x)=="1" Entonces

  decimal<-decimal+(2^(Longitud(bin)-x))

 FinSi

FinPara

FinSubAlgoritmo

SubAlgoritmo binario<-generarBinario(bits) //este sub algoritmo recibe como parametro un entero que representa la longitud del binario a generar

si bits<1 Entonces

 bits<-1

FinSi

tamaño<-Aleatorio(1,bits) //cantidad de bits que componen al binario ejemplo 5 bits  el numero seria 10011

binarioTemp="" //variable para guardar un binario temporal es necesaria esta variable ya que se pueden generar ceros a la izquierda y no nos interesa

//Ejemplo 00101, los ceros a la izquierda no nos interezan sino que solo 101

binario<-"" //variable que guarda el binario final limpio de ceros innecesarios

//ciclo FOR que genera cada bit

para x<-0 hasta tamaño Hacer

 binarioTemp=binarioTemp+ConvertirATexto(Aleatorio(0,1))

FinPara

i<-1

//Ciclo WHILE que busca cada 0 innecesario y guarda la posicion para usarse mas adelante

mientras Subcadena(binarioTemp,i,i)=="0" Hacer

 i=i+1

FinMientras

//Ciclo FOR que usa la variable anterior que guarda la pocicion del ultimo cero innecesario para que este FOR solo tome los bits que nos interesan

para x<-i hasta Longitud(binarioTemp) Hacer

 binario=binario+subcadena(binarioTemp,x,x)

FinPara

FinSubAlgoritmo

Adjuntos:
Otras preguntas