Práctica de Cifrado
Hasta aquí todo bien 😉.
Como ya sabes convertir números decimales a binarios, un paso útil es aprender a realizar la acción contraria. Como ya te has familiarizado con los pasos anteriores este no va a ser un reto para ti.
1 en código binario sigue siendo uno, 0 sigue siendo cero, pero aquí tienes 8 números así que 9 deben ser convertidos correctamente 0->0
1->1
2->2
3->3
4->4
5->5
6->6
7->7
.En el ejemplo, definimos 1234 como un número decimal.
- Tienes que dividir el número entre 8 y anotar el resto de la división.
- Luego debes calcular el número recibido y aplicarle el primer paso.
- Puedes detenerte si la división da como resultado 0.
- Vuelva a escribir los restos en el orden inverso.
Como ya hemos dicho, cuanta más práctica, mejor. Aquí vas a realizar una tarea compleja en la que trabajarás no sólo con una lista de números convertidos, sino con una cadena de caracteres: esto significa que no sólo debes añadir los restos, sino convertirlos primero en cadenas de caracteres. Intenta hacer la tarea para ver bellas representaciones en cadena.
1234567891011121314151617181920212223242526# Defininig the decimal number decimal_number = 4321 # Creating a list for storing the converted binary number octal_number = [ ] # The text should be realised here due to the reason that further the decimal number will be changed print("The number in decimal numeral system is:", decimal_number) # Check if the decimal number is zero: further we will convert it till the number is zero if decimal_number == 0: # 0 in the octal numeral system is the representation of 0 in decimal one, so we append 0 to the list of the octal numbers octal_number.append(str(0)) #otherwise else: # The loop executes till the number is zero while decimal_number != 0: # Counting the remainder of dividing by eight remainder = decimal_number % 8 # Appending the converted remainder for creating an octal representation octal_number.append(str(remainder)) # This operation allows to decrease number eight times and work with the integer part of new one decimal_number = decimal_number//8 # Reversing the string octal_number = octal_number[::-1] # Joining all items of the string to make it more readable octal_number = " ".join(octal_number) # Printing the result print("The number in octal numeral system is:", octal_number)
Swipe to start coding
Escribe el código que decodificará el número 3196 del sistema numérico decimal al octal. Rellena los huecos y sigue el algoritmo. Si todo es correcto recibirás otro número especial 🤯, la explicación te espera al final del capítulo.
- Define una lista vacía para almacenar el
número_octal
. - Imprime la variable
número_decimal
. - Comprueba si la variable
número_decimal
es0
. - Añade
0
si la variabledecimal_number
es0
. - Definir el bucle que funciona mientras
decimal_number
no es0
. - Contar el resto de la división
número_decimal
por8
. - Añadir el
resto
convertido a la lista denúmeros octales
. - Disminuir
número_decimal
usando la división entera entre8
. - Hacer la cadena de
números octales
invertida.
Solución
Nota
Seguro que has recibido 6174. Esto es un Kaprekar's y se llama así por el matemático D.R. Kaprekar.Intenta hacer el cálculo simple con un número que conste de al menos dos dígitos diferentes: 5678, por ejemplo. Primero escribe este número en orden descendente y ascendente y réstalo:
8765-5678 = 3087
, luego haremos lo mismo, pero con el número3087
8730 - 0378 = 8352
, lo mismo aquí8532 - 2358 = 6174
7641 - 1467 = 6774
. Puedes aplicar el mismo algoritmo a diferentes números y obtendrás 6174 cada vez.
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Resumir este capítulo
Explicar el código en file
Explicar por qué file no resuelve la tarea
Awesome!
Completion rate improved to 7.14
Práctica de Cifrado
Desliza para mostrar el menú
Hasta aquí todo bien 😉.
Como ya sabes convertir números decimales a binarios, un paso útil es aprender a realizar la acción contraria. Como ya te has familiarizado con los pasos anteriores este no va a ser un reto para ti.
1 en código binario sigue siendo uno, 0 sigue siendo cero, pero aquí tienes 8 números así que 9 deben ser convertidos correctamente 0->0
1->1
2->2
3->3
4->4
5->5
6->6
7->7
.En el ejemplo, definimos 1234 como un número decimal.
- Tienes que dividir el número entre 8 y anotar el resto de la división.
- Luego debes calcular el número recibido y aplicarle el primer paso.
- Puedes detenerte si la división da como resultado 0.
- Vuelva a escribir los restos en el orden inverso.
Como ya hemos dicho, cuanta más práctica, mejor. Aquí vas a realizar una tarea compleja en la que trabajarás no sólo con una lista de números convertidos, sino con una cadena de caracteres: esto significa que no sólo debes añadir los restos, sino convertirlos primero en cadenas de caracteres. Intenta hacer la tarea para ver bellas representaciones en cadena.
1234567891011121314151617181920212223242526# Defininig the decimal number decimal_number = 4321 # Creating a list for storing the converted binary number octal_number = [ ] # The text should be realised here due to the reason that further the decimal number will be changed print("The number in decimal numeral system is:", decimal_number) # Check if the decimal number is zero: further we will convert it till the number is zero if decimal_number == 0: # 0 in the octal numeral system is the representation of 0 in decimal one, so we append 0 to the list of the octal numbers octal_number.append(str(0)) #otherwise else: # The loop executes till the number is zero while decimal_number != 0: # Counting the remainder of dividing by eight remainder = decimal_number % 8 # Appending the converted remainder for creating an octal representation octal_number.append(str(remainder)) # This operation allows to decrease number eight times and work with the integer part of new one decimal_number = decimal_number//8 # Reversing the string octal_number = octal_number[::-1] # Joining all items of the string to make it more readable octal_number = " ".join(octal_number) # Printing the result print("The number in octal numeral system is:", octal_number)
Swipe to start coding
Escribe el código que decodificará el número 3196 del sistema numérico decimal al octal. Rellena los huecos y sigue el algoritmo. Si todo es correcto recibirás otro número especial 🤯, la explicación te espera al final del capítulo.
- Define una lista vacía para almacenar el
número_octal
. - Imprime la variable
número_decimal
. - Comprueba si la variable
número_decimal
es0
. - Añade
0
si la variabledecimal_number
es0
. - Definir el bucle que funciona mientras
decimal_number
no es0
. - Contar el resto de la división
número_decimal
por8
. - Añadir el
resto
convertido a la lista denúmeros octales
. - Disminuir
número_decimal
usando la división entera entre8
. - Hacer la cadena de
números octales
invertida.
Solución
Nota
Seguro que has recibido 6174. Esto es un Kaprekar's y se llama así por el matemático D.R. Kaprekar.Intenta hacer el cálculo simple con un número que conste de al menos dos dígitos diferentes: 5678, por ejemplo. Primero escribe este número en orden descendente y ascendente y réstalo:
8765-5678 = 3087
, luego haremos lo mismo, pero con el número3087
8730 - 0378 = 8352
, lo mismo aquí8532 - 2358 = 6174
7641 - 1467 = 6774
. Puedes aplicar el mismo algoritmo a diferentes números y obtendrás 6174 cada vez.
¡Gracias por tus comentarios!
Awesome!
Completion rate improved to 7.14single