Você está na página 1de 7

UNIVERSIDADE ESTADUAL DE CAMPINAS

FACULDADE DE ENGENHARIA ELÉTRICA E DE COMPUTAÇÃO

EA – 772 CIRCUITOS LÓGICOS

2S-2018 – TURMA A

Aula 03
Conversão entre bases numéricas

PROF. JOSÉ W M BASSANI


EA-772 Circuitos Lógicos – Aula 03
2S-2018, Professor: Bassani, JWM

AGOSTO DE 2018

Aula 03.

Iniciamos também, nesta aula, o estudo da mudança ou conversão entre bases numéricas. A
conversão foi tratada de modo geral e ao final algumas regras práticas foram explicitadas.
Descrevemos a conversão por meio de algoritmos simplificados. Algoritmos foram definidos
como conjuntos de passos necessários para se realizar alguma tarefa bem definida. O
algoritmo para converter um número escrito em uma base b1 para qualquer outra b2 foi,
simplificadamente, o seguinte:

1. Expresse o número na notação polinomial na base b1;

2. Avalie o polinômio, usando aritmética na base b2;

(Avaliar significa obter o número após atribuição dos valores numéricos dos coeficientes do
polinômio e das respectivas potências da base)

Fizemos primeiro a conversão para a base 10. Dado um número em qualquer base estudamos
a sua conversão para a base 10. Queremos converter um número da base 8 (b1) para a base
10 (b2). Foi então seguido o seguinte algoritmo.

1. (26)8 = 2x81 + 6x80. ( (N)b1 expresso na notação polinomial);

2. 2x8 = 16 e 6x1 = 6. Assim, 16 + 6 = 22 e essa aritmética está sendo feita na base b2, ou
seja, na base 10, resultando portanto (22)10.

Para adiantar o seu raciocínio em outras bases foram dadas dicas de alguns números em
outras bases.

(2)10 = (10)2

(3)10 = (10)3

(4)10 = (10)4

O que vem a ser então a base numérica? Corresponde ao número de dígitos (ou símbolos)
usados para representar os números. Por exemplo, na base 10 há 10 dígitos que são os inteiros
de 0 a 9. Por isso que na definição de número explicitamos que b era a base definida como um
número inteiro maior que 1 e que os coeficientes do polinômio (os dígitos do número)
estariam contidos entre 0 e b-1. Na base 3 temos 3 dígitos 0, 1 e 2 . Na base 4, teríamos 0, 1, 2
e 3. Logo, 4 na base 4 será o maior dígito mais 1, ou seja, um número com dois dígitos (10)4.
Isto é a mesma coisa em qualquer base. O número 10 na base 10 é 1 acima de 9 e precisa de
dois dígitos, portanto (10)10.

Veja como ficariam as potências de 2 dos números nas diversas bases:

2
EA-772 Circuitos Lógicos – Aula 03
2S-2018, Professor: Bassani, JWM

22 = (100)2

32 = (100)3

42 = (100)4

Qualquer potência da base corresponderá a um número com apenas um digito 1 na posição


relativa ao valor da base. Assim, 28 = (100000000)2, 515 = (1000000000000000)5. É isso. Como
seria 2n – 1 na base 2? Veja se seria um número assim: (1111...11)2 com o número de 1´s igual
a n.

Foi apresentada a tabela de números em diferentes bases para que você consiga efetuar
aritmética em outras bases.

2 4 5 8 10 12 16

Binária Quaternária Quinária Octal Decimal Duodecimal Hexadecimal

0000 00 00 00 00 00 0

0001 01 01 01 01 01 1

0010 02 02 02 02 02 2

0011 03 03 03 03 03 3

0100 10 04 04 04 04 4

0101 11 10 05 05 05 5

0110 12 11 06 06 06 6

0111 13 12 07 07 07 7

1000 20 13 10 08 08 8

1001 21 14 11 09 09 9

1010 22 20 12 10 0A A

1011 23 21 13 11 0B B

1100 30 22 14 12 10 C

1101 31 23 15 13 11 D

1110 32 24 16 14 12 E

1111 33 30 17 15 13 F

3
EA-772 Circuitos Lógicos – Aula 03
2S-2018, Professor: Bassani, JWM

Vamos agora para o exemplo:

Converter (26)8 para a base 5.

1. (26)8 = 2x81+6x80. ( (N)b1 expresso na notação polinomial);

2. Avaliar com aritmética na base 5. Assim, ficamos com (2)5x(13)5 + (11)5x(1)5

Deste modo: (2)5x(13)5+(11)5x(1)5 o que resultaria (31)5 + (11)5 = (42)5. Para se exercitar
converta cada um para a base 10 e veja se (26)8 = (42)5.

Nem sempre efetuar a aritmética nas outras bases diferentes da base 10 é conveniente ou
você irá se lembrar de como fazer. Vamos então explorar um algoritmo para converter
qualquer número da base 10 para qualquer base, operando sempre na base 10. Serão as
conversões de (N)10 =(N)b.

Algoritmo para converter a parte inteira, ou seja, cálculo de c1 c2 ... c n −1 c n .

1. Divida o número decimal pelo valor da base b, ou seja, (N)10 /b;

( N )10
2. Faça c n = resto de ;
b

( N )10
( )
3. Faça c n −1 = b ;
b

4. Continue calculando os coeficientes até que o quociente seja nulo.

Exemplo de conversão de (23)10 para a base 2.


Dividendo (23)10
Divisor 2 considerado como um decimal
Dividendo Divisor Quociente Resto índice (i) do coeficiente (ci)
23 2 11 1 5 (- significativo)
11 2 5 1 4
5 2 2 1 3
2 2 1 0 2
1 2 0 1 1 (+ significativo)
Como resultado final (veja também a seta) teríamos então:

(23)10 = (10111)2

Em bases maiores que 10 costuma-se representar os dígitos maiores ou iguais a 10 com letras.
Assim, na base 16 ou hexadecimal, 10 = A, 11 = B, 12 = C, 13 = D, 14 = E e 15 = E. Se você divide
algum número decimal por b o resto necessariamente será menor que b e assim sempre
poderá se representar algum dígito na base b.

4
EA-772 Circuitos Lógicos – Aula 03
2S-2018, Professor: Bassani, JWM

O algoritmo para converter a parte fracionária (. c4 c5 ) de um número na base 10 para


qualquer outra base está apresentado a seguir. Vamos assumir que o número esteja
representado por duas partes NI. Nf, respectivamente as partes inteira e fracionária.

1. Multiplico a parte fracionária pela base.

Assim, efetuo (.Nf)10 x b. Se o produto resultante for < 1

então

2. O digito mais significativo da fração será zero; Voltar ao item 1

Se o produto resultante for ≥ 1

3. O digíto mais significativo será a parte inteira do resultado;

4. Voltar ao item 1.

O algoritmo não especifica a parada, mas isso você vai ver ao trabalhar com os exemplos
dados em aula e nos exercícios.

Exemplos

Converter: (0.625)10 = ( )8

0.625 x 8 = 5.000 0.5

Veja que se você fosse adiante não acrescentaria dígitos significativos.

Converter: (0.23)10 = (0.001110)2

Produtos Resultado da conversão

0.23 x 2 =0.46 0.0

0.46 x 2 = 0.92 0.00

0.92 x 2 = 1.84 0.001

0.84 x 2 = 1.68 0.0011

0.68 x 2 = 1.36 0.00111

0.36 x 2 = 0.72 0.001110

Com os dois algoritmos podemos então converter um número qualquer da base 10 para
qualquer base.

Exemplo
Converter: (27.68)10 = ( )2
27/2 = 13 resto 1

5
EA-772 Circuitos Lógicos – Aula 03
2S-2018, Professor: Bassani, JWM

13/2 = 6 resto 1
6/2 = 3 resto 0
3/2 = 1 resto 1
1/2 = 0 resto 1
Seguindo adiante,

Produtos Resultado da conversão


0.68 x 2 = 1.36 0.1
0.36 x 2 = 0.72 0.10
0.72 x 2 = 1.44 0.101
0.44 x 2 = 0.88 0.1010

O resultado final fica, então, (27.68)10 = (11011.1010)2

Distração: Conversão da base 2 para bases que são potências de 2

No caso de bases que são potências de 2 as coisas podem ficar mais simples. Nestes casos,
basta agrupar os números binários em grupos de 2n dígitos. Isto facilita converter da base 2
para outras bases.

Base 2  base 8 (23)

Como ilustrado abaixo, marque os grupos de n dígitos antes do ponto binário da direita para a
esquerda e depois do ponto da esquerda para a direita. Agora converta (de cabeça) cada grupo
de n=3 dígitos para a base 8 (é claro que você tem apenas que ler e copiar os dígitos
correspondentes). Lembre-se de ajustar o número de bits para múltiplos de 3 bits.

(1101.10101)2 = 1 1 0 1 . 1 0 1 01 base 2 = 001 101.101 010

1 5 . 5 2 base 8

Avalie, se quiser, cada bloco de 3 dígitos usando o polinômio escrito na base 2 e avaliado na
base 10.

Base 2 -- base 16 (24) n = 4.

(11011.1010)2 = ( )H = 11011.1010 base 2

1 B A base hexadecimal (16)

Se o número for potencia k de 2 ajuste os bits para blocos de tamanho k e aplique a regra. No
caso de truncamento, o número ficaria impreciso. Deve-se lembrar que para se obter a devida
precisão para um número 2k seria necessário considerar pelo menos k bits depois do ponto da
base.

TRIANGULAÇÃO

6
EA-772 Circuitos Lógicos – Aula 03
2S-2018, Professor: Bassani, JWM

Como último recurso, se você não tiver alternativa, fique com a regra da triangulação.
Converta da base original para a base 10 (você sabe fazer as contas) e daí da base 10 para a
base desejada, usando os algoritmos e operações na base 10.

Exemplo
Converter:
(16)7 para a ( )3
Converta (16)7 para a base 10. Assim: 1 x 71 + 6 x 70 = (13)10
Agora, converta (13)10 para a base 3. Assim: 13/3 = 4 (resto 1), 4/3 = 1 (resto 1), 1/3 = 0 (resto
1). Ou seja, (13)10 = (111)3

Bibliografia

-Bassani JWM.
Notas de aula – Circuitos Lógicos.
-Veja a lista de referencias indicadas na primeira aula

(Veja no site indicado para a disciplina o material didático e bibliografia)

Você também pode gostar