A maioria das pessoas não se liga que nosso sistema numérico só vai até dez. Pode soar estranho mas é mais ou menos por aí. Representamos todo o restante de números que queremos representar com 10 símbolos, que são os algarismos de 0 a 9, e isso sim não é nenhuma novidade.
Agora, por que 10, e não 7, 3 ou 5? Bom. Temos 10 dedos, e a partir daí já fica bem mais fácil de contar. Só que o fato é que podemos representar qualquer número em qualquer base. Computadores, por exemplo, só entendem a base 2 - ou o chamado sistema binário, onde só existe 1 e 0. Pode-se derivar o sistema binário em outros sistemas de base par, tal como o hexadecimal, que é como representamos as cores em HTML, com #000000 para preto até o #FFFFFF para branco.
Converter bases de cabeça não é tarefa das mais simples, então é bem mais fácil deixar com os computadores, o que pode ser feito com uma função em pascal simples. Esta daqui vai converter o número e a base dada no seu correspondente decimal.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | function converte_base (numero,base:integer) :integer; { Recebe o número e a base do número. } begin erro:=false; numero_convertido:=0; e:=1; while (numero > 0) do begin n:=numero mod 10; { Captura o último bit. } if (n > base) then begin erro:=true; numero:=0; end; numero_convertido:=numero_convertido + n*e; { Eleva o bit ao expoente. } e:=e*base; { Faz o expoente crescer. } numero:=numero div 10; end; if erro then writeln('O número ',numero1,' não pode ser de base ',base1,' pois ',n,' é maior que ',base1) else begin converte_base:=numero_convertido; writeln('Número Convertido: ',numero_convertido); end; end; |