Desafio de Decifração
Existe outro sistema numérico comumente usado chamado hexadecimal. Se você aprender programação web ou algo relacionado, deve se deparar com a Tabela de Códigos de Cores RGB que é implementada usando hex (sistema hexadecimal) para ajudar os computadores a definirem diferentes cores. Vermelho -> #FF0000
Branco -> #FFFFFF
Amarelo -> #FFFF00
e a mesma representação para cada cor.
Hex é uma representação de 4 bits. Profissionais de informática até consideram a leitura de números hexadecimais mais fácil do que os decimais e binários. Como eu disse anteriormente, é uma forma bela de armazenar dados não de maneira binária, mas agrupando-os; por isso, o sistema numérico hexadecimal é implementado.
Este consiste em 16 dígitos, 0->0
1->1
2->2
3->3
4->4
5->5
6->6
7->7
8->8
9->9
. Eu suponho que você comece a adivinhar o resultado desta sequência e inclua o 10 como o décimo número desta continuidade, mas você ficará surpreso porque 10->A
11->B
12->C
13->D
14->E
15->F
Mas para convertê-lo em decimal, você deve identificar o dicionário, devido ao motivo de que dicionários são uma maneira superior de armazenar informações com uma chave. Nos passos anteriores, todas as chaves conformavam-se a números, mas aqui devido às letras um dicionário deve ser implementado.
Regra
Suponho que você esteja familiarizado com diferentes algoritmos, então parece-me que você pode adivinhar que aqui (no sistema numérico hexadecimal) vamos multiplicar cada dígito por 16 elevado à potência do índice. Obviamente, não podemos multiplicar a letra; portanto, devemos encontrar a matemática para isso. Por exemplo, ABC10
-> (A)10x16^4
+ (B)11x16^3
+ (C)12x16^2
+ 1x16^1
+ 0x16^0
= 655360
+ 45056
+ 3072
+ 16
+ 0
= 703504
# Implementing the dictionary dictionary = {"0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9, "A": 10 , "B": 11, "C": 12, "D": 13, "E": 14, "F": 15} # Definig hexadecimal number hexadecimal_number = "ABC10" # The text should be realised here due to the reason that further the binary number will be changed print("The number in hexadecimal numeral system is:", hexadecimal_number) # Definig decimal number decimal_number = 0 # Define variable for storing the power power = 0 #the loop will iterate through the string hexadecimal_number for digit in hexadecimal_number: # Taking the very last character digit = hexadecimal_number[-1] # Multyplying the last digit to 16 raised the relevant power result = dictionary[digit] * pow(16, power) # Adding result to the decimal number decimal_number = decimal_number+result # Increasing power by 1 power = power + 1 # Removing the last sharacter of the string hexadecimal_number = hexadecimal_number[0:-1] # Printing the result print("The number in decimal numeral system is:", decimal_number)
Swipe to start coding
Aprecio seu desejo de estudar, continue assim! Escreva o código que irá decodificar o número 'CAFE' do sistema numérico hexadecimal para decimal. Siga este algoritmo:
- Imprima o
número hexadecimal
. - Atribua
0
à variáveldecimal_number
. - Defina a variável
power
para armazenar a potência e atribua0
a ela. - Defina o loop que itera pela string
hexadecimal_number
. - Pegue o último caractere da string
hexadecimal_number
. - Eleve
16
aopower
relevante e multiplique pelo dígito. - Aumente
power
em 1. - Remova o último caractere da string
hexadecimal_number
.
Solução
Obrigado pelo seu feedback!