apostila de sistema de numeração

17
Professor Carlos Sica Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Março 2009

Upload: vandre-tiski

Post on 25-Jun-2015

320 views

Category:

Documents


0 download

DESCRIPTION

Apostila sobre sstemas de numeraçao

TRANSCRIPT

Page 1: Apostila de Sistema de Numeração

Professor Carlos Sica

Universidade Estadual de Maringá

Centro de Tecnologia

Departamento de Informática

Março 2009

Page 2: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 2

Índice

1. Sistemas de numeração aplicados à computação ..................................................... 3

2. Sistema numérico decimal........................................................................................ 4

3. Sistema numérico binário ......................................................................................... 5

4. Números binários negativos ..................................................................................... 6

5. Sistema numérico hexadecimal ................................................................................ 7

6. Métodos de conversão de base entre os sistemas de numeração.............................. 8

6.1. Binário para decimal......................................................................................... 8

6.2. Binário negativo para decimal.......................................................................... 8

6.2.1. Primeiro método (Complemento de 2) ..................................................... 8

6.2.2. Segundo método ....................................................................................... 8

6.3. Binário para decimal menores que 1 ................................................................ 9

6.4. Binário para hexadecimal ................................................................................. 9

6.5. Decimal para binário ........................................................................................ 9

6.5.1. Primeiro Método..................................................................................... 10

6.5.2. Segundo Método..................................................................................... 10

6.6. Decimal negativo para binário........................................................................ 10

6.7. Decimal para binário menor que 1 ................................................................. 11

6.8. Decimal para hexadecimal.............................................................................. 11

6.9. Hexadecimal para decimal.............................................................................. 12

6.9.1. Primeiro método ..................................................................................... 12

6.9.2. Segundo método ..................................................................................... 12

6.10. Hexadecimal para binário........................................................................... 12

7. O código BCD ........................................................................................................ 13

8. O código sete segmentos ........................................................................................ 15

9. O código binário refletido....................................................................................... 16

10. Conversão entre as bases decimal, hexadecimal e binário ................................. 17

Page 3: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 3

1. Sistemas de numeração aplicados à computação

(Texto baseado no Capítulo 3 do livro "Sistemas Automáticos com Microcontroladores

8031/8051", Novatec, 2006).

Este texto visa relembrar alguns sistemas numéricos e os métodos de conversão de base

entre eles. Inicialmente é feita uma revisão dos sistemas numéricos mais relevantes para

o assunto a ser discutido no decorrer desta publicação e depois são detalhados os

métodos de conversão entre os sistemas previamente citados.

Para finalizar, as formas de representação de informações em computador são discutidas

com vistas aos sistemas eletrônicos que serão apresentados como sistemas controlados.

O sistema numérico decimal é o mais utilizado pela humanidade. Acredita-se que o

número de dedos que o homem tem nas mãos foi um fato decisivo, nos primórdios, para

a criação e disseminação deste sistema.

Com o advento da eletrônica digital e, principalmente, do computador, surgem outras

necessidades, como a de representar os números utilizando a eletricidade. Além disso,

como é mais caro fabricar sistemas que tenham 10 níveis de tensão para representar os

números de 0 a 9, criou-se o sistema binário, que exige apenas dois níveis de tensão e

representam os números de 0 a 1 em cada dígito.

Por fim, como a representação de números binários de alto valor torna os dígitos quase

ilegíveis para nós, é comum utilizar o sistema hexadecimal para abreviá-los, pois cada

dígito hexadecimal guarda 4 dígitos binários.

Os itens a seguir detalham estes três sistemas numéricos presentes na nossa realidade.

Page 4: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 4

2. Sistema numérico decimal

Para entender os sistemas numéricos, vale a pena inicialmente relembrar o familiar

sistema decimal, ou, sistema de base 10.

Cada número decimal pode ser representado em potência de 10, por exemplo, o número

"6.345,59" é representado, segundo seus pesos ou potência, da seguinte forma:

(6x103)+(3x10

2)+(4x10

1)+(5x10

0)+(5x10

-1)+(9x10

-2)

de outra forma:

6.000,00

300,00

+ 40,00

0,50

0,09

6.345,59

A quantidade de símbolos necessários para representar números em qualquer base é

igual ao número da base. No sistema decimal, então, a quantidade de símbolos é 10, ou

seja, de 0 a 9.

Quando o contador de qualquer dígito extrapola o maior número (neste caso o 9), um

“vai um” é adicionado na próxima posição (dígito à esquerda) e na atual é escrito 0

(zero), lembre-se da conta 9+1=10, na escola primária foi ensinado, nove mais um dá

zero e vai um.

Outro exemplo é o do hodômetro (marcador de quilometragem) de carro.

Usando essa sistemática, um sistema numérico pode ser construído usando potências de

qualquer grandeza, porém, alguns são mais utilizados que outros. Por exemplo, na área

de eletrônica: sabe-se que é muito difícil construir um circuito eletrônico que armazene

dez níveis de voltagem para representar os dez símbolos de um sistema decimal e,

relativamente simples, é construir um circuito que armazene e manipule apenas dois

níveis. Por esta razão, os computadores utilizam o sistema numérico de base 2 ou

código binário [HALL, 1986].

Page 5: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 5

3. Sistema numérico binário

Este sistema usa apenas dois símbolos, o 0 e o 1; portanto, em binário você deve contar

como segue:

0,1,10,11,100,101,110,111 etc.

Números binários são freqüentemente chamados de palavras binárias ou simplesmente

palavras.

Da mesma forma que no sistema decimal discutido anteriormente, aliás, em todos os

sistemas numéricos, cada dígito pode ser representado pela sua potência ou peso:

... 24, 2

3, 2

2, 2

1, 2

0 ...

Palavras binárias com certas quantidades de dígitos podem adquirir nomes especiais,

por exemplo, um dígito binário é chamado de BIT, proveniente das palavras inglesas

BInary digiT.

A seguir, na Tabela 1, são mostrados os nomes atribuídos para as palavras formadas por

conjuntos de bits específicos. Apesar de não existir uma padronização, estes nomes são

adotados pela maioria dos autores e serão adotados nesta publicação, mantendo

compatibilidade com os próximos capítulos.

Tabela 1. Nomes que se referem ao tamanho dos dados

Quantidade de bits Nome da palavra

4 Nibble

8 Byte

16 Word

32 DoubleWord

64 QuadrupleWord

Relativamente ao seu peso, o dígito mais à direita de uma palavra de dígitos binários é

considerado o dígito menos significativo (Least-Significant Bit = LSB), e o dígito mais

à esquerda é o mais significativo (Most-Significant Bit = MSB).

Page 6: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 6

4. Números binários negativos

Este código é uma forma de representar números negativos em binário.

Visto que computadores só podem armazenar 0s e 1s (zeros e uns), alguma maneira

deve ser estabelecida para representar os sinais + e -, bem como a grandeza ou

magnitude do número, usando apenas 0s e 1s.

A forma encontrada foi utilizar o bit mais significativo para representar o sinal do

número, e o restante para representar a grandeza dele.

Computadores com palavras de 8 bits, usam o bit 7 (MSB) como bit de sinal e os 7 bits

restantes para representar a magnitude. Nos números formados por 16 bits, o MSB é o

bit 15, e conseqüentemente utilizado para representar o sinal. Os números formados por

outras quantidades de bits seguem esta mesma regra.

A Figura 1 mostra o formato de um número de 8 bits em complemento de 2.

-27 26 25 24 23 22 21 20

MSB +/- LSB

� bit de sinal

Figura 1. Bit de sinal.

A convenção usual é que um sinal positivo seja representado pelo oitavo bit (neste caso

-27) ajustado em zero e o negativo pelo número um. Além disso, para as conversões o

bit mais significativo representa a parte negativa do número, portanto a grandeza -128.

Veja os itens 6.2 e 6.6 para aprender, respectivamente a conversão de números binários

negativos para decimal e de decimais negativos para binário.

Page 7: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 7

5. Sistema numérico hexadecimal

Alguns computadores mais antigos, como o PDP-8, possuem 12 linhas paralelas de

dados. Quatro dígitos em octal representam facilmente os dados binários destas 12

linhas divididas de 3 em 3. No entanto, a maioria dos computadores, por serem digitais,

trabalham com dados de 4, 8, 16, 32 ou 64 bits; como são múltiplos de 4, é mais lógico

utilizar um código que agrupe os dígitos de 4 em 4 e não de 3 em 3. O sistema numérico

hexadecimal ou base 16 faz isto. Portanto, no meio computacional, o sistema numérico

hexadecimal, chamado constantemente simplesmente de hexa, é o mais utilizado e,

conseqüentemente, também o mais citado neste trabalho.

De acordo com suas potências, os números em hexadecimal teriam a representação

baseada na sua seqüência:

... 162, 16

1, 16

0, 16

-1 ...

Além disso, para representar seus números são necessários 16 símbolos:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Page 8: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 8

6. Métodos de conversão de base entre os sistemas de numeração

Uma vez estudados os três métodos de representação numérica relacionados com o meio

computacional, é necessário conhecer as formas de conversão entre eles.

6.1. Binário para decimal

Multiplica-se cada dígito pela sua potência equivalente e, depois, somam-se os

elementos obtidos.

11012 = (1x23)+(1x2

3)+(0x2

1)+(1x2

0) = 1310

6.2. Binário negativo para decimal

Como já explicado no Capítulo 4, a forma que o computador representa os números

negativos em binário é utilizando bit mais significativo (MSB) para significar o sinal.

Os dois itens seguintes ensinam como converter números binários com sinal em

números decimais.

6.2.1. Primeiro método (Complemento de 2)

Para converter números binários negativos para decimal, aplica-se o "complemento de

2", que nada mais é que o complemento de um número binário mais 1.

Exemplo:

O número 100011112, de antemão deve ser considerado negativo, porque o MSB está

ligado. Para ser convertido ele deve receber o seu complemento somado de 1.

1000 1111

0111 0000

+ 0000 0001

0111 0001

Encontra-se assim, a grandeza resultante que é 01110012 ou 19310, o que nos faz

concluir que número 100011112 dever ser expresso decimal como -19310 devido ao

MSB do número binário original estar ligado.

6.2.2. Segundo método

Da mesma forma, considere o bit mais significativo, que em números binários de 8 bits

é o 27, como sendo o bit de sinal.

Portanto o seu peso 27=128 representa a parte negativa do valor e será tomado então

como -128.

27 26 25 24 23 22 21 20

-128 64 32 16 8 4 2 1

Figura 2. Numeração binária com sinal

Page 9: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 9

Exemplos:

1 1 1 1 1 0 1 1 Decimal

-128 123 -5

Portanto 1111 10112 = -510

1 1 1 1 1 0 0 1 Decimal

-128 121 -7

Portanto 1111 10012 = -710

1 1 0 1 0 1 1 1 Decimal

-128 87 -41

Portanto 1010 01112 = -4110

1 1 1 1 1 1 1 1 Decimal

-128 127 -1

Portanto 1111 11112 = -110

Por este último exemplo é possível concluir que em número de 8 bits sinalizados, é

possível contar de -128 (1000 00002) até 127(0111 11112), passando naturalmente pelo

0 (0000 00002).

6.3. Binário menor que 1 para decimal

Multiplica-se cada dígito pela sua potência equivalente e somam-se os resultados

0,112 = 0,(1 x 2-1)+(1 x 2

-2) = 0,(1/2)+(1/4) = 0,7510

6.4. Binário para hexadecimal

Trabalha-se nesta conversão com grupos de quatro dígitos binários (nibble) somando

seus pesos para compor um dígito hexadecimal. Caso algum dígito exceda o valor 9,

deve-se utilizar os correspondentes A até F.

1100 00112 =

= (1 x 23)+(1 x 2

2)+(0 x 2

1)+(0 x 2

0) + (0 x 2

3)+(0 x 2

2)+(1 x 2

1)+(1 x 2

0) =

= 12 + 3

Como o equivalente hexadecimal de 12 é o número C,

1010 00112= C316

6.5. Decimal para binário

Existem duas formas para chegar ao resultado neste tipo de conversão; o leitor poderá

escolher o que mais lhe agradar, pois os resultados são precisos em ambos os casos.

Page 10: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 10

6.5.1. Primeiro Método

A partir do número que se deseja converter, subtrai-se o maior número em potência de

2. Repete-se o processo com o resultado, utilizando o restante como base, e assim

sucessivamente até encontrar zero.

Exemplo: Dentro do número 39 em decimal, a maior potência de 2 é 25 = 32, e 39-32 =

7. Seguindo a norma, repete-se a operação com o valor restante. No número 7 em

decimal, a maior potência de 2 é 22 = 4, e 7-4 = 3. Dentro do número 3 em decimal, a

maior potência de 2 é 21 = 3, e 3-2 =1 que é igual a 2

0. As potências não encontradas

representam o digito 0 naquela posição, desta forma os resultados encontrados devem

ser agrupados como na Tabela 2:

Tabela 2. Conversão de decimal para binário (primeiro método)

Potências

Encontradas Não encontradas Número formado

25 1 MSB

24 0

23 0

22 1

21 1

20 1 LSB

Portanto: 3910 = 1001112.

6.5.2. Segundo Método

Divide-se o número decimal por 2 e repetidamente usam-se os restos para formar o

número binário, conforme ilustrado na Figura 3.

Exemplo:

Figura 3. Conversão de decimal para binário (segundo método).

Portanto: 3910 = 1001112.

6.6. Decimal negativo para binário

No capítulo 4, foi ensinado como o computador representa números negativos em

binário. o bit mais significativo (MSB) é utilizado para representar o sinal. Quando 0

(zero) é positivo e quando 1 (um) é negativo.

Por exemplo, para representar o número -7 em binário, deve-se partir da magnitude (7)

em binário que é 0000 0111 (neste exemplo 8 bits), fazer seu complemento e somar 1 a

este valor. Este exemplo é ilustrado na Tabela 3 e, um segundo, na Tabela 4.

Page 11: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 11

Tabela 3. Magnitude e sinal do número -7 decimal

Binário Hexadecimal Decimal

Magnitude (7) 0000 0111 07 = 7

complemento (de 1) 1111 1000 F8

complemento de 2 1111 1001 F9 = -7

Outro exemplo, o número -5 em complemento de 2.

Tabela 4. Magnitude e sinal do número -5 decimal

Binário Hexadecimal Decimal

Magnitude (5) 0000 0101 05 = 5

complemento (de 1) 1111 1010 FA

complemento de 2 1111 1011 FB = -5

6.7. Decimal menor que 1 para binário

Multiplica-se o número a ser convertido pela sua potência equivalente, e do resultado

obtido, extrai-se a parte inteira, que será sempre 0 ou 1. O restante (à direita da vírgula)

é utilizado sucessivamente para calcular os outros dígitos. O processo se encerra quando

a parte fracionária é zero. Um exemplo é mostrado na Tabela 5.

Tabela 5. Conversão de decimal para binário menor que 1

0,75110 2 x 0,751 = 1,502

2 x 0,502 = 1,004

2 x 0,004 = 0,008

2 x 0,008 = 0,016

2 x 0,016 = 0,032

2 x 0,032 = 0,064

2 x 0,064 = 0,128

2 x 0,128 = 0,512

2 x 0,512 = 1,024

Portanto: 0,75110 = 0,11000000012.

Re-convertendo para decimal, é obtido aproximadamente 0,750976562510 devido à

precisão truncada em 0,024. Este exemplo mostra que é possível efetuar uma conversão

deste tipo com a precisão necessária para cada problema.

6.8. Decimal para hexadecimal

Divide-se sucessivamente o valor a ser convertido por 16 e usam-se os restos para

formar o número resultante.

Exemplo 1

409610 = 100016

Page 12: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 12

Exemplo 2

5910 = 3B16

6.9. Hexadecimal para decimal

Semelhante ao método apresentado no item 3.2.1, multiplica-se cada dígito pela sua

potência equivalente e, depois, somam-se os elementos obtidos. Cada dígito

representado por uma letra entre A e F deve ser convertido antes da multiplicação para

seu correspondente decimal: A=10, B=11, C=12, D=13, E=14 e F=15.

6.9.1. Primeiro método

3B16 = (3 x 161) + (B x 160) = (3 x 161) + (11 x 160) = 5910

6.9.2. Segundo método

Exemplo 1

3B16 = 5910

Exemplo 2

1516 = 2110

6.10. Hexadecimal para binário

Cada dígito hexadecimal representa 4 dígitos em binário, portanto, a conversão deve ser

feita para cada dígito, separadamente, de forma semelhante ao primeiro método do item

3.2.4.

O número 3B16 compõe um número de 8 bits (byte), ou dois de 4 bits, portanto deve ser

visto da forma mostrada na Tabela 6.

Tabela 6. Número de 8 bits em hexadecimal e binário

3 B

0 0 1 1 1 0 1 1

Page 13: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 13

7. O código BCD

O código BCD (Binário Codificando Decimal) é utilizado em aparelhos digitais, tais

como: relógios, fornos de microondas, frequencímetros, multímetros, calculadoras e,

muitas vezes, em interfaces, monitorando dados de computadores.

Existem dois tipos de representação de números em BCD:

• BCD (não compactado): Representação de um dígito decimal codificado em

binário (Binary Coded Decimal) na faixa de 0 a 9. Um decimal não compactado

é expresso por um byte sem bit de sinal. Cada dígito é armazenado em um byte.

A magnitude do número é o valor binário do nibble de ordem mais baixa (4 bits

menos significativos do byte); os dígitos somente podem assumir valores entre 0

e 9. O nibble de ordem mais alta (4 bits mais significativos do byte), deve estar

zerado para as operações de multiplicação e de divisão, e podem conter qualquer

valor nas somas e subtrações.

• BCD Compactado (packed BCD): Representação de dígitos decimais codifcados

em binário, cada um na faixa de 0 a 9. Um dígito é armazenado nos 4 bits menos

significativos do byte e outro nos 4 bits mais significativos; portanto cada byte

comporta dois dígitos.

Os computadores e equipamentos digitais utilizam internamente o sistema numérico

binário. Desta forma, sempre que esses equipamentos forem representar um número em

decimal, utilizam o código BCD.

Por exemplo, o número decimal 15 ocupa 4 dígitos binários formando o nibble 1111.

Para mostrar esse número, convertido em decimal em um display de 7 segmentos é

necessário separá-lo em 2 partes: o número 1 e o número 5, o que forma também dois

números em binário: o número 0001 e número 0101, respectivamente. Somente após

essa separação o sistema digital mostrará o número para o usuário.

Segundo a técnica discutida anteriormente nos itens 3 e 5, quatro dígitos binários

formam um hexadecimal, que varia de 0 a F.

O código BCD consiste em somar a constante 6 ao nibble que está sendo convertido, o

resultado extrapolará o dígito hexa e será necessário um “vai um”.

Veja o exemplo que converterá o número hexadecimal A em binário codificado

decimal. O número A16 corresponde a 10102. Somando a constante 6 (decimal) que

corresponde ao número 0110 em binário obtém-se o resultado 10 em BCD.

10102..

+ 01102..

1 0000BCD

O número resultante, 1.0000BCD, será mostrado num display de 7 segmentos em duas

partes: a primeira mostrará o 12 e a segunda o 00002.

Este código usa somente os 10 primeiros números (0000 a 1001) dos 16 possíveis (0000

a 1111) de cada conjunto de 4 bits do código binário.

Page 14: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 14

Outro exemplo: o número 89 em binário é 0101 1001, porém quando representado em

BCD, é 1000 1001.

Page 15: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 15

8. O código sete segmentos

Este código é utilizado para representar os números em displays de 7 segmentos.

Cada display de 7 segmentos é constituído de 7 leds utilizados para formar o número e

um para representar um ponto (Figura 4). Os fabricantes os apresentam num invólucro

com 10 pinos, sendo que cada um deles está ligado a um segmento que forma o número,

ao ponto e, dois deles, ao comum.

Existem dois tipos de displays de 7 segmentos: o de ânodo (pólo positivo) comum e o

de cátodo (pólo negativo) comum, portanto o ‘comum’ deve ser levado ao positivo ou

ao Terra do circuito (0 Volts), respectivamente, dependendo do tipo de display.

Figura 4. Display de sete segmentos com o 3 aceso.

Para acender um segmento (led) nestes displays é necessário ajustar 0 ou 1 lógico nos

pinos da display de acordo com o tipo adquirido, sendo um complemento do outro,

conforme mostra a Tabela 7.

Tabela 7. Código 7 segmentos

Ânodo comum Cátodo comum

a b c d e f g a b c d e f g

0 0 0 0 0 0 0 1 1 1 1 1 1 1 0

1 1 0 0 1 1 1 1 0 1 1 0 0 0 0

2 1 1 0 1 1 0 1 0 0 1 0 0 1 0

3 1 1 1 1 0 0 1 0 0 0 0 1 1 0

4 0 1 1 0 0 0 1 1 0 0 1 1 1 0

5 1 0 1 1 0 1 1 0 1 0 0 1 0 0

6 1 0 1 1 1 1 1 0 1 0 0 0 0 0

7 1 1 1 0 0 0 0 0 0 0 1 1 1 1

8 1 1 1 1 1 1 1 0 0 0 0 0 0 0

9 1 1 1 1 0 1 1 0 0 0 0 1 0 0

A 0 0 0 1 0 0 0 1 1 1 0 1 1 1

B 1 1 0 0 0 0 0 0 0 1 1 1 1 1

C 0 1 1 0 0 0 1 1 0 0 1 1 1 0

D 1 0 0 0 0 1 0 0 1 1 1 1 0 1

E 0 1 1 0 0 0 0 1 0 0 1 1 1 1

F 0 1 1 1 0 0 0 1 0 0 0 1 1 1

Page 16: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 16

9. O código binário refletido

O código binário refletido é assim chamado porque parte da sua composição é

construída como se os números fossem vistos num espelho. A Figura 5 ilustra como o

código refletido é construído. A primeira parte mostra a numeração para um dígito (bit),

a segunda para dois bits e, a terceira, para três.

Para construir a seqüência de duas variáveis (parte 2) reflete-se os 4 números

conseguidos com o espelhamento e, após isto, são inseridos 0's na frente dos dois

primeiros e 1's nos dois últimos compondo a seqüência 00 01 11 10.

Da mesma forma, para construir a seqüência para três variáveis, reflete-se o resultado

do espelhamento para dois bits e insere-se 0's e 1's criando a seqüência 000 001 011 010

110 111 101 100.

Figura 5. Construção do código refletido

Esta construção destaca uma característica muito peculiar: cada número difere do seu

vizinho em apenas um dígito, inclusive o primeiro e o último, como se eles fossem

interligados formando um círculo como mostrado na Figura 6.

Figura 6. O código refletido não muda mais que um dígito

Page 17: Apostila de Sistema de Numeração

Copyrigth © Carlos Sica 2009 – UEM/CTC/DIN 17

10. Conversão entre as bases decimal, hexadecimal e binário

A Tabela 8 apresenta um resumo para consulta rápida, da conversão entre as três bases

estudadas.

Tabela 8. Conversão entre as bases

Decimal Hexadecimal Binário

0 00 0 0 0 0 0 0 0 0

1 01 0 0 0 0 0 0 0 1

2 02 0 0 0 0 0 0 1 0

3 03 0 0 0 0 0 0 1 1

4 04 0 0 0 0 0 1 0 0

5 05 0 0 0 0 0 1 0 1

6 06 0 0 0 0 0 1 1 0

7 07 0 0 0 0 0 1 1 1

8 08 0 0 0 0 1 0 0 0

9 09 0 0 0 0 1 0 0 1

10 0A 0 0 0 0 1 0 1 0

11 0B 0 0 0 0 1 0 1 1

12 0C 0 0 0 0 1 1 0 0

13 0D 0 0 0 0 1 1 0 1

14 0E 0 0 0 0 1 1 1 0

15 0F 0 0 0 0 1 1 1 1

16 10 0 0 0 1 0 0 0 0

17 11 0 0 0 1 0 0 0 1

18 12 0 0 0 1 0 0 1 0

19 13 0 0 0 1 0 0 1 1

20 14 0 0 0 1 0 1 0 0

21 15 0 0 0 1 0 1 0 1

22 16 0 0 0 1 0 1 1 0

23 17 0 0 0 1 0 1 1 1

24 18 0 0 0 1 1 0 0 0

25 19 0 0 0 1 1 0 0 1

26 1A 0 0 0 1 1 0 1 0

27 1B 0 0 0 1 1 0 1 1

28 1C 0 0 0 1 1 1 0 0

29 1D 0 0 0 1 1 1 0 1

30 1E 0 0 0 1 1 1 1 0

31 1F 0 0 0 1 1 1 1 1

32 20 0 0 1 0 0 0 0 0

33 21 0 0 1 0 0 0 0 1

34 22 0 0 1 0 0 0 1 0

35 23 0 0 1 0 0 0 1 1

36 24 0 0 1 0 0 1 0 0

37 25 0 0 1 0 0 1 0 1

38 26 0 0 1 0 0 1 1 0

39 27 0 0 1 0 0 1 1 1

40 28 0 0 1 0 1 0 0 0

41 29 0 0 1 0 1 0 0 1

42 2A 0 0 1 0 1 0 1 0

43 2B 0 0 1 0 1 0 1 1

44 2C 0 0 1 0 1 1 0 0