REPRESENTAÇÃO DE DADOS
REPRESENTAÇÃO DE NÚMEROS DECIMAIS CODIFICADOS EM BINÁRIO
A representação de números reais em ponto flutuante é perfeitamente adequada para fazer
cálculos matemáticos, científicos, etc. No entanto, nessa representação podemos ter perda
de precisão do número representado ou mesmo haverá números que não podem ser
representados por overflow (excedem o número de bits do expoente). Quando estamos
representando números em que é necessário manter precisão até o último algarismo, tal
como nos cálculos usados em procedimentos financeiros (o seu saldo no banco, por
exemplo) não é admissível erro por aproximação.

Para resolver essa restrição, foi desenvolvida uma outra representação: BCD ou Binary
Coded Decimal (ou seja, Decimal Representado em Binário). A idéia do BCD é
representar, em binário, cada algarismo de per si, de forma a que o número original seja
integralmente preservado. A codificação BCD não possui extensão fixa, possibilitando
representar números com precisão variável - quanto maior o número de bits, maior será a
precisão. O microprocessador Intel 8080 suporta instruções de aritmética em BCD (p.ex.:
instrução DAA).

TABELA DE REPRESENTAÇÃO DOS NÚMEROS DECIMAIS EM BCD

DECIMAL           BCD        DECIMAL        BCD
   0              0000           8          1000
   1              0001           9          1001
   2              0010        inválido      1010
   3              0011        inválido      1011
   4              0100        inválido      1100
   5              0101        inválido      1101
   6              0110        inválido      1110
   7              0111        inválido      1111

Assim, o número 148 seria representado em BCD como:
1 = 00012
4 = 01002 e
8 = 10002, logo:
148 = 000101001000 (BCD).
Exemplo 1: representação do número 14958 em BCD:

                                                número
    1         4          9          5         8
                                                decimal
xxxx0001 xxxx0100 xxxx1001 xxxx0101 xxxx1000 representação
BCD
   a+4       a+3       a+2        a+1         a       endereço

A codificação de um dígito em BCD requer 4 bits. Como a utilização de apenas 4 bits por
byte não é eficiente, normalmente são armazenados 2 dígitos BCD em um só byte. Esta
representação é chamada BCD comprimido ("packed BCD"). Podemos constatar que
ainda assim há um desperdício de códigos; como BCD usa 4 bits (logo, haveria 16
representações possíveis) para representar 10 algarismos, 6 códigos não são utilizados.
Portanto, essa representação é menos eficiente em relação à utilização dos recursos do
computador que a representação em ponto flutuante.
Exemplo 2: representação do número 14958 em BCD comprimido:

    1         49        58   número decimal
                           representação BCD
xxxx1001 01001001 01011000
                               comprimido
  a+2      a+1        a         endereço

Os algoritmos da aritmética em BCD são os mesmos que os correspondentes à aritmética
em decimal, à qual sempre estivemos acostumados. Por exemplo, na soma em BCD,
soma-se os algarismos individualmente, em decimal; quando a soma ultrapassa dez, "vai
um" para o dígito de maior ordem (a próxima "casa"), e assim por diante.

Exemplo.:

DECI MAL     B CD
   25     0010 0101
  +3 8   +0011 1000
   5 13   0101 1101
  +1 10- +0001 1010-
   63     0110 0011

    [P15] [Índice] [Home-page] [Início da Página] [Seção Anterior] [Próxima Seção]

  [Sistemas de Numeração] [Representação de Dados] [Componentes do Computador]
[Representação de Instruções] [Circuitos Lógicos] [Entrada e Saída] [Tópicos Avançados
                  de Arquitetura] [Sistemas de Arquivos] [Glossário]

Representação de dados

  • 1.
    REPRESENTAÇÃO DE DADOS REPRESENTAÇÃODE NÚMEROS DECIMAIS CODIFICADOS EM BINÁRIO A representação de números reais em ponto flutuante é perfeitamente adequada para fazer cálculos matemáticos, científicos, etc. No entanto, nessa representação podemos ter perda de precisão do número representado ou mesmo haverá números que não podem ser representados por overflow (excedem o número de bits do expoente). Quando estamos representando números em que é necessário manter precisão até o último algarismo, tal como nos cálculos usados em procedimentos financeiros (o seu saldo no banco, por exemplo) não é admissível erro por aproximação. Para resolver essa restrição, foi desenvolvida uma outra representação: BCD ou Binary Coded Decimal (ou seja, Decimal Representado em Binário). A idéia do BCD é representar, em binário, cada algarismo de per si, de forma a que o número original seja integralmente preservado. A codificação BCD não possui extensão fixa, possibilitando representar números com precisão variável - quanto maior o número de bits, maior será a precisão. O microprocessador Intel 8080 suporta instruções de aritmética em BCD (p.ex.: instrução DAA). TABELA DE REPRESENTAÇÃO DOS NÚMEROS DECIMAIS EM BCD DECIMAL BCD DECIMAL BCD 0 0000 8 1000 1 0001 9 1001 2 0010 inválido 1010 3 0011 inválido 1011 4 0100 inválido 1100 5 0101 inválido 1101 6 0110 inválido 1110 7 0111 inválido 1111 Assim, o número 148 seria representado em BCD como: 1 = 00012 4 = 01002 e 8 = 10002, logo: 148 = 000101001000 (BCD). Exemplo 1: representação do número 14958 em BCD: número 1 4 9 5 8 decimal xxxx0001 xxxx0100 xxxx1001 xxxx0101 xxxx1000 representação
  • 2.
    BCD a+4 a+3 a+2 a+1 a endereço A codificação de um dígito em BCD requer 4 bits. Como a utilização de apenas 4 bits por byte não é eficiente, normalmente são armazenados 2 dígitos BCD em um só byte. Esta representação é chamada BCD comprimido ("packed BCD"). Podemos constatar que ainda assim há um desperdício de códigos; como BCD usa 4 bits (logo, haveria 16 representações possíveis) para representar 10 algarismos, 6 códigos não são utilizados. Portanto, essa representação é menos eficiente em relação à utilização dos recursos do computador que a representação em ponto flutuante. Exemplo 2: representação do número 14958 em BCD comprimido: 1 49 58 número decimal representação BCD xxxx1001 01001001 01011000 comprimido a+2 a+1 a endereço Os algoritmos da aritmética em BCD são os mesmos que os correspondentes à aritmética em decimal, à qual sempre estivemos acostumados. Por exemplo, na soma em BCD, soma-se os algarismos individualmente, em decimal; quando a soma ultrapassa dez, "vai um" para o dígito de maior ordem (a próxima "casa"), e assim por diante. Exemplo.: DECI MAL B CD 25 0010 0101 +3 8 +0011 1000 5 13 0101 1101 +1 10- +0001 1010- 63 0110 0011 [P15] [Índice] [Home-page] [Início da Página] [Seção Anterior] [Próxima Seção] [Sistemas de Numeração] [Representação de Dados] [Componentes do Computador] [Representação de Instruções] [Circuitos Lógicos] [Entrada e Saída] [Tópicos Avançados de Arquitetura] [Sistemas de Arquivos] [Glossário]