You are on page 1of 10

Sistemas de numeración.

Tanto se empregan en procesos de datos, como en sistemas de control, os sistemas dixitais teñen
que realizar operación con números que poden estar representados en calquera sistema de
numeración. Os distintos sistemas de numeración vanse diferenciar pola súa base, é dicir, pola
cantidade de símbolos distintos empregados para expresar calquera cantidade. Desde o punto de
vista matemático poden ter calquera base pero os máis empregados son o decimal, o binario, o octal
e o hexadecimal.

Sistema Decimal.
O sistema decimal é o sistema de numeración empregado na vida cotiá, probablemente porque
temos dez dedos nas mans. É un sistema de base 10, emprega dez díxitos ou símbolos (0,1,2,...,9),
posicional, que quere dicir que cada un deses símbolos expresa unha cantidade que pode variar en
magnitude dependendo da posición que ocupa dentro dunha cifra.
Exemplo: O número 222 está formado por un único símbolo repetido tres veces pero en distintas
posicións e polo tanto con distinto valor: o dous máis á dereita indica dúas unidades e o que lle
segue ten un valor dez veces maior, 2 decenas ou 20 unidades, e o terceiro representa un valor de
200, dando como resultado o número 200+20+2=222.
En xeral, o peso ou valor de cada posición obtense de dereita a esquerda comezando por 1 e
multiplicando pola base para obter o seguinte peso.
Con esta estratexia de repetir símbolos pero en distintas posicións podemos contar ou expresar
calquera cantidade.
Cada número expresado en decimal pódese descompoñer en sumas de potencias da base tal e como
se representa no seguinte exemplo.
Exemplo:
4052 = 4x103+0x102+5x101+2x100
Se tratásemos con cantidades fraccionarias, a partir da coma decimal os valores das posicións serían
0.1, 0.01, 0.001... ,é dicir, as potencias de dez sucesivas pero con expoñente negativo 10-1, 10-2, 10-
3
...
Exemplo:
4052.34 = 4x103+0x102+5x101+2x100+3x10-1+4x10-2

Sistema binario
Dado que os circuítos da electrónica dixital só poden tomar dous posibles valores, o sistema de
numeración que mellor se lle adapta é aquel que emprega só dous símbolos (0 e 1), chamado
sistema binario. A forma de contar ou expresar cantidades grandes segue a mesma estratexia que
no sistema decimal, tendo en conta que só emprega eses dous símbolos, e o momento de repetir
símbolo comezaría co que en decimal é o número dous. Na seguinte táboa móstrase a comparativa
entre as dúas formas de contar, en binario e en decimal.
0 1 2 3 4 5 6 7 8 9 10 11 ... Decimal
0 1 10 11 100 101 110 111 1000 1001 1010 1011 ... Binario
Cada posición dun número binario coñecese como bit, que é unha contracción da palabras en inglés
binary digit (díxito binario). O número binario 1011 é un número de 4 bits. Ao bit mais á dereita
dun número, o de menor valor, acostuma a chamárselle LSB, e ao que está máis á esquerda, MSB,
siglas en inglés de bit menos e máis significativo respectivamente.
Igual que no sistema decimal, cada bit ten un valor asociado á posición: o primeiro 20, o segundo
21, o terceiro 22... de forma que no número binario 111, o un máis á dereita indica unha unidade, o
segundo dúas unidades, o terceiro catro unidades, etc.No seguinte exemplo móstrase a expresión
dun número binario en función de sumas de potencias da base:
1101= 1x23+1x22+0x21+1x20
Reparando nos dous últimos exemplos pódese deducir que con 1 bit podemos representar dous
números, o 0 e o 1, con dous bits catro números (00, 01, 10, e 11), con tres bits 8 (000, 001, 010,
011, 100, 101, 110, 111) e, en xeral , con n bits poderemos contar ata 2n-1, ou ben, contando tamén
o cero, 2n números distintos.

Sistema hexadecimal.
O sistema hexadecimal é un sistema de base 16. Os símbolos empregados son todos os do sistema
decimal: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 e ademais as letras A, B, C, D, E, F que terían os valores en
decimal 10,11,12, 13, 14 e 15 respectivamente. Neste sistema comézase contando de 0 ata F, os
seguinte números serían 10, 11,...., 19, 1A, 1B, 1C, 1D, 1E, 1F, e seguen 20, 21,..., 29, 2A, 2B, etc.
O sistema hexadecimal tamén é posicional e o valor asociado a cada símbolo depende da súa
posición no número e é proporcional ás diferentes potencias da base do sistema.
Exemplo:
30C=3x162+0x161+Cx160=3x256+0x16+12x1=780
Este sistema emprégase fundamentalmente como unha forma sinxela de manexar as, en xeral,
grandes secuencias de uns e ceros do sistema binario, facilitando a tarefa do programador.

Sistema octal.
Sistema de numeración posicional de base 8 que emprega como símbolos: 0, 1, 2, 3, 4, 5, 6, 7 . A
facilidade de conversión entre os sistemas octal e binario fai que o sistema octal sexa atractivo
como un medio de representar números binarios de moitos bits.
Conversión entre sistemas decimal, binario,
octal e hexadecimal
Cando se traballa con números expresados en distintas bases, para evitar a confusión, engádeselle a
cada cifra un subíndice que indica a base do sistema ó que pertence.
Exemplo:
101(10 é o número cento un en decimal, en cambio 101(2 é o número cinco expresado en binario.

Conversión de calquera sistema a decimal.


Para converter calquera sistema de numeración ó sistema decimal, é suficiente con expresar o
número en función de potencias da súa base e resolver os produtos e sumas:
Exemplo: Conversión de binario a decimal
1011(2=1x23+0x22+1x21+1x20=1x8+0x4+1x2+1x1=8+0+2+1=11(10

Exemplo: Conversión de hexadecimal a decimal


30C(16=3x162+0x161x160=3x256+0x16+12x1=780(10

Exemplo: Conversión de octal a decimal


112(8=1x82+1x81+2x80=1x64+1x8+2x1=64+8+2=74(10

No caso de termos cantidades fraccionarias, o proceso é idéntico tomando a partir do lado dereito da
coma decimal potencias sucesivas da base pero con expoñentes negativos:
Exemplo:
1011.011(2=1x23+0x22+1x21+1x20+0x2-1+1x2-2+1x2-3=
1x8+0x4+1x2+1x1+0x0.5+1x0.25+1x0.125= 11.375(10

Conversión de decimal a binario.


O método consiste en ir dividindo o número decimal sucesivas veces entre 2 ata que o cociente da
división sexa 1. O número binario obterase de tomar o último cociente (MSB: bit máis
significativo ) e todos os restos das sucesivas divisións en orde inverso.
Exemplo: Pasar a binario o número decimal 45
45:2=22 e resto 1 (LSB)
22:2=11 e resto 0
11:2=5 e resto 1
5:2=2 e resto 1
2:2=1 (MSB) e resto 0
o número binario buscado será: 101101
Graficamente comprendese mellor o proceso:
Para números fraccionarios, temos que separar a parte enteira da parte fraccionaria. A parte enteira
convértese como no exemplo anterior. Coa parte fraccionaria procedemos como segue:
multiplicamos de xeito sucesivo polo número 2 e tomamos a parte enteira dos produtos que se van
formando. Repítese este proceso ata que a parte fraccionaria sexa cero.
Exemplo: pasar a binario o decimal 45.375
A parte enteira xa está resolta no exemplo anterior. Procedemos coa parte fraccionaria, 0.375:
0.375 x2=0.75 (o primeiro decimal será 0)
0.75x2=1.50 ( o segundo decimal será 1)
0.5x2=1.0 8 o terceiro decimal será 1 e remata o proceso porque nos da 0 a parte fraccionaria.
Agora unimos as dúas partes e: 45.375(10=101101.011(2

Vexámolo tamén de forma gráfica:

Conversión de decimal a hexadecimal


O proceso é igual que en binario, dividindo o número decimal sucesivas veces entre 16 ata que o
cociente da división sexa menor que 16. Tomaremos como MSB o último cociente e os restos
anteriores de forma sucesiva. Ademais hai que lembrar as equivalencias: 10=A, 11=B, 12=C, 13=D,
14=E, 15=F.
Exemplo: Pasar a hexadecimal o número decimal 250.
250:16=15 (MSB) e resto 10 (LSB).
15(10=F(16 e 10(10=A(16, polo tanto 250(10= FA(16

Exemplo: Pasar a hexadecimal o número decimal 2500:


2500:16= 156 e resto 4(LSB)
156:16=9 (MSB) e resto 12
Como 12(10=C(16, entón 2500(10=9C4(16
Conversión de decimal a octal.
Segue exactamente o mesmo método, máis, neste caso, as divisións sucesivas faranse entre 8.
Exemplo: Converter o número decimal 323 a octal:
323:8= 40 e resto 3 (LSB)
40:8=5(MSB) e resto 0
Polo tanto: 323(10=503(8

Conversión de octal a binario e viceversa.


Esta conversión é moi sinxela empregando a seguinte táboa:
octal binario
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
Así, o número octal 472 pasarase a binario díxito a díxito: 4(8=100(2, 7(8=111(2 e 2(8=010(2,
quedando 472(8=100 111 010(2, Igualmente se pasa de binario a octal sempre tendo a precaución de
tomar de 3 en 3 díxitos o número binario e empezando pola dereita.

Conversión de Hexadecimal a binario.


O proceso seméllase ao caso anterior e debemos ter en conta a seguinte táboa:
hexadecimal binario
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111
Exemplo: Pasar a binario o número hexadecimal 4CF.
Mirando a táboa observamos que: 4(16=0100(2, C(16=1100(2 e F(16=1111(2 polo tanto:

4CF(16= 0100 1100 1111(2

Exemplo: pasar a hexadecimal o número binario 111010011


Comezamos separando de catro en catro díxitos pola dereita. 1 1101 0011. O grupo mais á esquerda
hai que consideralo precedido de tres ceros, ata completar un grupo de catro á esquerda : 0001 1101
0011 quedando entón: 1D3(16

Exercicios.
1.- Calcula o valor decimal do seguinte número binario: 101011,11(2. (Sol.: 43,75(10).

2.- Calcula o valor decimal do seguinte número octal: 547(8. (Sol.: 359(10).

3.- Calcula o valor decimal do seguinte número hexadecimal: 27AF,8(16. (Sol.:10159,5(10).

4.- Converter de decimal a binario o número 324(10. (Sol.: 101000100(2).

5.- Converter de decimal a binario o número 23,625(10. (Sol.: 10111,101(2).

6.- Converter o número decimal 251,625(10 a hexadecimal. (Sol.: FB,A(16).

7.- Converter o número decimal 123,45(10 a octal. (Sol.: 173,346314...(8).

8.- Converter o número hexadecimal 1B3,2(16 a binario e octal. (Sol.: 0001 1011 0011, 0010(2,
663,1(8).
BCD, GRAY e JHONSON

No sistema binario cada díxito recibe o nome de bit. A relación biunívoca existente entre a
información e a palabra pola que será representada denomínase código. Como o sistema numérico
co que traballamos habitualmente é o sistema decimal, a maioría dos códigos que veremos serán os
baseados no BCD(Decimal Codificado en Binario). Estes códigos empregan catro bits por cada
díxito decimal, xa que 23<10<24. Así, o código BCD natural é aquel que representa cada díxito
decimal pola súa expresión binaria.
Dentro dos códigos podemos atopar un grupo caracterizado porque o seu valor pode obterse a través
dun polinomio cos díxitos de dito código a través dun produto escalar.
Valor=w3c3+w2c2+w1c1+w0c0

onde o vector (w3,w2,w1,w0) é coñecido como vector peso e o vector (c3,c2,c1,c0) está formado
polos bits dunha combinación binaria determinada. Os códigos que mostran esta característica
denomínanse códigos pesados ou con peso. O caso do código BCD natural atópase dentro do
grupo dos códigos con peso posto que cada bit atópase multiplicado por un peso (8,4,2,1). Outros
exemplos de códigos con peso son os que teñen como peso (8,4,-2,-1) e o BCD Aiken (2,4,2,1). Un
exemplo de código non pesado é o código BCD exceso a 3. Este código obtense como o código
binario do resultado da suma do díxito en cuestión co número tres. Estes códigos móstranse na
seguinte táboa.
Táboa 1: Exemplos de códigos binarios
BCD natural BCD Aiken BCD exceso a 3
Díxito Decimal
8421 8 4 -2 -1 2421
0 0000 0000 0000 0011
1 0001 0111 0001 0100
2 0010 0110 0010 0101
3 0011 0101 0011 0110
4 0100 0100 0100 0111
5 0101 1011 1011 1000
6 0110 1010 1100 1001
7 0111 1001 1101 1010
8 1000 1000 1110 1011
9 1001 1111 1111 1100
Excepto o código BCD natural, os outros tres teñen a propiedade de ser autocomplementarios, é
dicir, se complementamos (cambiamos 1's por 0's e ó revés) a palabra bit a bit, obteremos a palabra
correspondente ó díxito 9 menos o número decimal equivalente a combinación binaria de partida.
Exercicio: Codifica o número decimal 245,32 empregando os distintos códigos BCD.
BCD natural: 245,32(10=0010 0100 0101, 0011 0010(2

BCD Aiken: 245,32(10=0001 0100 1011, 0011 0010(2

BCD exceso a 3: 245,32(10=0101 0111 1000, 0110 0101(2

Nalgúns sistemas é aconsellable que as palabras correspondentes a valores próximos se diferencien


pouco para que o posible erro na transmisión non introduza erros na información transmitida. Por
exemplo, se pasamos de 7 (0111) a 8 (1000) e ten lugar un fallo no último bit o resultado obtido
sería 0000 (0). Así, defínese a distancia Hamming como o número de bits en que difiren dúas
palabras de código, e defínese un código de distancia n como aquel que presenta unha distancia n
entre palabras consecutivas. Estes códigos poden clasificarse en códigos pechados cando a última
palabra ten unha distancia n con respecto á primeira, e códigos abertos, cando a última palabra ten
unha distancia diferente a n con respecto á primeira palabra. Un exemplo de código de distancia
unidade é o código Gray, que obtemos de forma sinxela a partir do código binario.
Táboa 2: Obtención do código Gray a partir do código binario natural.
(Ver máis abaixo o código Gray)
Binario Código
Díxito Decimal natural Gray
b 3 b2 b 1 b0 g3 g2 g1 g0
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111 gi=0 <=> bi=bi+1
6 0110 0101
7 0111 0100
8 1000 1100
9 1001 1101

Código Johnson

Otro código cíclico de amplia utilización es el código progresivo Johnson:


La capacidad de codificación para n bits asciende a 2n cantidades distintas. Ello
se comprueba de inmediato en la tabulación siguiente realizada para 4 bits.
n = 4 ® Número de configuraciones = 2 · 4 = 8 (del 0 al 7 decimal).

Decimal Jonhson
0 0000
1 0001
2 0011
3 0111
4 1111
5 1110
6 1100
7 1000

Dado que la máxima capacidad de codificación binaria con n bits se eleva a 2n, el
código Johnson no se utiliza en sistemas digitales complejos, debido a la gran
cantidad de bits que exige para realizar codificaciones extensas.
Su presencia se reserva a contadores muy simplificados integrados, por ejemplo,
en el diseño de unidades de control para sistemas digitales.

You might also like