Saltar al contenido
EjemplosEnglishEspacio →

Conversión de bases

Escribe un número en binario y en hexadecimal.

Nivel
Avanzado
Conceptos:
Entrada y salida
Mientras
Texto
Matemáticas
Abrir en Codoritmo

Ejecuta, modifica y depura este ejemplo en el navegador.

Lo que aprenderás

Con divisiones sucesivas, MOD da cada dígito y Trunc el cociente. ConvertirATexto y Subcadena convierten cada resto en su carácter.

Código

base-conversion.psc · 27 líneas
Algoritmo ConversionBases    Definir numero, cociente, resto Como Entero    Definir binario, hexadecimal, digitos Como Caracter    digitos <- "0123456789ABCDEF"    Escribir "Número entero positivo:"    Leer numero    // Divisiones sucesivas: los restos, leídos al revés, forman el número    binario <- ""    cociente <- numero    Mientras cociente > 0 Hacer        binario <- ConvertirATexto(cociente MOD 2) + binario        cociente <- Trunc(cociente / 2)    FinMientras    hexadecimal <- ""    cociente <- numero    Mientras cociente > 0 Hacer        resto <- cociente MOD 16        hexadecimal <- Subcadena(digitos, resto + 1, resto + 1) + hexadecimal        cociente <- Trunc(cociente / 16)    FinMientras    Si numero = 0 Entonces        binario <- "0"        hexadecimal <- "0"    FinSi    Escribir numero, " en binario: ", binario    Escribir numero, " en hexadecimal: ", hexadecimalFinAlgoritmo

Diagrama de flujo

Cada bloque del diagrama corresponde a una instrucción del código.

Algoritmo ConversionBasesSíNoSíNoSíNoAlgoritmo ConversionBasesAlgoritmo ConversionBasesDefinir numero, cociente, resto Como EnteroDefinir numero, cociente,resto Como EnteroDefinir binario, hexadecimal, digitos Como CaracterDefinir binario, hexadecimal,digitos Como Caracterdigitos <- "0123456789ABCDEF"digitos <- "0123456789ABCDEF"Escribir "Número entero positivo:"Escribir "Número enteropositivo:"Leer numeroLeer numerobinario <- ""binario <- ""cociente <- numerocociente <- numeroMientras cociente > 0 Hacercociente > 0binario <- ConvertirATexto(cociente MOD 2) + binariobinario <-ConvertirATexto(cociente MOD2) + binariocociente <- Trunc(cociente / 2)cociente <- Trunc(cociente /2)hexadecimal <- ""hexadecimal <- ""cociente <- numerocociente <- numeroMientras cociente > 0 Hacercociente > 0resto <- cociente MOD 16resto <- cociente MOD 16hexadecimal <- Subcadena(digitos, resto + 1, resto + 1) + hexadecimalhexadecimal <-Subcadena(digitos, resto + 1,resto + 1) + hexadecimalcociente <- Trunc(cociente / 16)cociente <- Trunc(cociente /16)Si numero = 0 Entoncesnumero = 0binario <- "0"binario <- "0"hexadecimal <- "0"hexadecimal <- "0"Escribir numero, " en binario: ", binarioEscribir numero, " en binario:", binarioEscribir numero, " en hexadecimal: ", hexadecimalEscribir numero, " enhexadecimal: ", hexadecimalFinAlgoritmoFinAlgoritmo

Ejemplo de ejecución

Esto muestra el programa al ejecutarlo. Las respuestas escritas por el usuario aparecen resaltadas.

Número entero positivo:Respuesta del usuario: 20242024 en binario: 111111010002024 en hexadecimal: 7E8

Desafío

Agrega la conversión a base 8 (octal).

Ver pista

Copia el bloque del binario y cambia el 2 por un 8.

Abrir en Codoritmo
  • Números primos

    Encuentra todos los números primos hasta un límite.

    Intermedio
  • MCD y MCM

    Calcula el máximo común divisor y el mínimo común múltiplo.

    Intermedio
  • Cifrado César

    Cifra un mensaje corriendo cada letra del abecedario.

    Avanzado