Capa / Portfolio / 244 posts / 1,043 comentários

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;

2 Comentários

Arthur Furlan04 de abril de 2009 às 20:08 #

hmm, pascal me lembra… BCC! :)

Vinícius Massuchetto04 de abril de 2009 às 00:37 #

Éééé… Pra alguma coisa essa pilha de programas tem que servir…. :)