sistemas de numeración, operaciones y...

17
1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para representar ideas, los seres humanos (al menos los occidentales) utilizamos cadenas de símbolos alfanuméricos de un alfabeto definido. En el mundo de los microcontroladores y microprocesadores la información consiste en señales eléctricas cuyos valores se asocian a los conceptos lógicos Verdadero y Falso , lo que da lugar a la utilización del sistema de numeración binario. Verdadero -> 1 Falso -> 0 Álgebra de Boole

Upload: others

Post on 23-Mar-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

1

1

Tema 1:

Sistemas de numeración,

operaciones y códigos.

2

Para representar ideas, los seres humanos (al menos los occidentales)

utilizamos cadenas de símbolos alfanuméricos de un alfabeto definido.

En el mundo de los microcontroladores y microprocesadores la información consiste en señales eléctricas cuyos valores se asocian a los conceptos lógicos Verdadero y Falso, lo que da lugar a la utilización del sistema de numeración binario.

Verdadero -> 1

Falso -> 0Álgebra de Boole

Page 2: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

2

3

Álgebra de Boole

Funciones lógicas más usuales:

•Adición, unión o función O (OR): f(A,B) = A + B

•Producto, intersección o función Y (AND): f(A,B) = A · B

•Complementación, negación, inversión o función NO (NOT): f(A)=A=A’

•Función O exclusiva (XOR): f(A,B) = A ⊕B

4

Álgebra de Boole

Tablas de verdad: representan los valores adoptados por las funciones lógicas.

111

101

110

000

A+BBA

111

001

010

000

A·BBA

011

101

110

000

A ⊕ BBA

01

10

AA

NOTOR

AND

XOR

Page 3: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

3

5

Álgebra de Boole

Propiedades del álgebra de Boole :

A·(B +C) = A·B + A·CA+B·C = (A+B) · (A+C)distributiva

A·B = B· AA+B = B+Aconmutativa

A·(B·C) = (A·B)·C = A·B·CA+(B+C) = (A+B)+C = A+B+Casociativa

(A·B)’=A’+B’(A+B)’=A’·B’De Morgan

A·( A’+B)=A·BA+A’·B=A+B

A·( A+B)=AA+A·B=AAbsorción

( A’)’=AInvolución

A· A=AA+A=AIdempotencia

A· A’=0A+A’=1Identidad

0· A=01+A=1

1· A=A0+A=AElemento neutro

6

Sistemas de codificación en los computadores

•Los microcontroladores manejan información binaria .

•Bit (binary digit): unidad mínima de información.

•La información consta de secuencias de bits (códigos) que representan:

•Instrucciones

•Datos

•Numéricos: 10000001(base 2)= 129(base 10)

•Alfanuméricos: 10000001 en ASCII es el carácter “ü”.

•Otros (gráficos, sonidos, etc).

Page 4: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

4

7

Sistemas de codificación en los computadores

Las limitaciones de diseño de los microcontroladores hacen que sus componentes estructurales tengan distintos anchos o tamaños de datos (tamaños privilegiados).

•Octeto, carácter o byte: cantidad en bits necesaria para representar un carácter alfanumérico. Usualmente, 8 dígitos binarios o bits.

•Palabra (precisión básica de un micro): máxima cantidad de información accesible y tratable en paralelo por las unidades aritmético-lógicas del computador y determina su potencia de cálculo. Es el tamaño de referencia para un computador y se mide en múltiplos de byte, existiendo tamaños de palabra de 8, 16, 32, 64, 128 bits, etc.

8

Sistemas de codificación en los computadores

Codificación: establece las reglas que definen la correspondencia entre cada elemento de información y la secuencia de bits que constituye su código.

Tipos: directa, por campos, por secuencias de códigos.

Sistemas de codificación directa

Se establece una correspondencia biunívoca entre un conjunto de símbolos y un conjunto de códigos binarios. Con n dígitos binarios se pueden representar 2n códigos binarios distintos.

Ejemplos:

•Con n=1 se pueden representar d=21 =2 combinaciones: {0,1}

•Con n=2 se pueden representar d=22 =4 combinaciones: {00,01,10,11}

•Con n=8 se pueden representar d=28 =256 combinaciones.

•Para representar d símbolos serán precisos n dígitos binarios, cumpliéndose que d =2 n , y por tanto n = log2 d

Page 5: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

5

9

Sistemas de codificación en los computadores

Sistemas de codificación por campos

Se dota de significado específico a parte de la información codificada.

Ejemplo: representación numérica mediante módulo y signo: el primer bit indica

el signo, y los restantes el módulo.

00000001base(M/S) = 1 base(10)

10000001base(M/S)= -1 base(10)

10

Sistemas de codificación en los computadores

Sistemas de codificación por secuencias de códigos

Se dota de significado específico a parte de la información codificada, y

diferentes símbolos se representan mediante códigos de diferentes longitudes.

Ejemplo: secuencias de escape en lenguaje C

• Las letras del alfabeto se representan mediante un solo carácter.

• Fin de línea: \n; retorno de carro: \r; carácter \: \\ .

Page 6: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

6

11

Sistemas de representación numérica

Un sistema de representación numérica es un sistema de lenguaje consistente en:•Un conjunto ordenado de símbolos (dígitos o cifras).

•un conjunto de reglas bien definidas para las operaciones aritméticas de suma, resta, multiplicación, división, etc.

Los números en un sistema de numeración consisten en una secuencia (vector)dedígitos que pueden tener parte entera y parte fraccionaria, ambas separadas por una coma (o un punto)

(N)(base r) = [(parte entera) , (parte fraccionaria)] (base r)

La base (r) de un sistema de numeración especifica el número de dígitos o

cardinal de dicho conjunto ordenado. Las bases más utilizadas son:

•base 2: binaria = {0,1}

•base 10: decimal = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

•base 16: hexadecimal = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}

•base 8: octal = {0, 1, 2, 3, 4, 5, 6, 7}

12

Sistemas de representación numérica

Equivalencias entre los 17 primeros números de los sistemas decimal, binario, octal y hexadecimal:

Page 7: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

7

13

Sistemas de representación numérica

El sistema más usual de representación numérica es el sistema posicional donde cada dígito del vector numérico tiene un valor distinto dependiendo de su posición concreta en el vector.

A sí un número en base r se representa de la siguiente manera:

N(base r) = [ap-1 ap-2 ... a1 a 0 , a-1 a-2 ... a-q ] (base r)

•ai son los dígitos,

•p es el número de dígitos enteros,

•ap-1 es el dígito más significativo,

•a-q es el dígito menos significativo.

14

Sistemas de representación numérica

N(base r) = [ap-1 ap-2 ... a1 a 0 , a-1 a-2 ... a-q ] (base r)

∑−

−==

1p

qi

ii·raN

Ejemplo:

1283(base 10) = [a3=1 a2=2 a1=8 a0= 3 a-i=0] (base 10) =

1 x 103+ 2 x 102+ 8 x 101+ 3 x 100= 1000+200+80+3

Page 8: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

8

15

Sistemas de representación numérica: conversiones entre bases

Conversión de base r a base s utilizando la aritmética de la base s:Esta conversión se usa normalmente para convertir de cualquier base a base 10.

Dado un número N en base r, la conversión consiste en evaluar directamente dicha expresión usando la aritmética de la base s tanto para la parte entera como para la fraccionaria.

Ejemplos:

• convertir el número binario 1101,01 a base 10:

1101,01(base 2) = [a3=1 a2=1 a1=0 a0= 1 a-1=0 a -2=1] (base 2) =

1 x 2 3+ 1 x 2 2+0 x 2 1+ 1 x 2 0 + 0 x 2 -1 +1 x 2 -2 =

1 x 8+ 1 x 4+0 x 2+1 x 1 +0 x 0.5 +1 x 0.25 = 13,25 (base 10)

•convertir el número 14 en base 16 a base 10:

14 (base 16) = [a1=1 a0= 4 ] (base 16) =

1 x 16 1+ 4 x 16 0= 1 x 16+ 4 x 1= 20 (base 10)

16

Sistemas de representación numérica: conversiones entre bases

Conversión de base r a base s utilizando la aritmética de la base r: Esta conversión se usa normalmente para pasar de base 10 a cualquier otra base.

Proceso de conversión:

• la parte entera se convierte mediante divisiones sucesivas entre s(base r)

• la parte fraccionaria se convierte mediante productos sucesivos por s(base r)

Page 9: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

9

17

Sistemas de representación numérica: conversiones entre bases

Ejemplo:

• convertir el número decimal 19 a binario.

Ejemplo:

• convertir el número decimal 127 a hexadecimal .

18

Sistemas de representación numérica: conversiones entre bases

Ejemplo:

• convertir el número decimal 0.1285 a base 4.

Ejemplo:

• convertir el número decimal 0.3 a binario.

Page 10: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

10

19

Sistemas de representación numérica: conversiones entre bases

Los procesos de conversión entre bases se simplifican cuando las bases de partida y de llegada son una potencia de la otra.

Casos más frecuentes:

•Conversión entre binario y octal

•Conversión entre binario y hexadecimal

Los sistemas octal y hexadecimal son muy utilizados porque permiten representar grandes cadenas de dígitos binarios de forma abreviada.

20

Sistemas de representación numérica: conversiones entre bases

Conversión de binario a octal: agrupar dígitos binarios de 3 en 3 a ambos lados de la coma y sustituir por su equivalente octal.

Conversión de binario a hexadecimal: agrupar dígitos binarios de 4 en 4 a ambos lados de la coma y sustituir por su equivalente hexadecimal.

Page 11: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

11

21

Sistemas de representación numérica: conversiones entre bases

Conversión de octal a binario: cada dígito octal se sustituye su equivalente binario de tres bits.

Conversión de hexadecimal a binario: cada dígito hexadecimal se sustituye por su equivalente binario de 4 bits.

22

Aritmética en base 2

Page 12: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

12

23

Aritmética en base 2

24

Aritmética en base 2

Page 13: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

13

25

C1 y C2 de los números binarios

El complemento a 1 (C1) y el complemento a 2 (C2) de un número binario son

importantes porque permiten la representación de números negativos.

Obtención del C1 de un numero binario:

intercambiando 1’s por 0’s y viceversa

Obtención del C2 de un numero binario:

C1 + 1

26

Codificación de números en BCD

Codificaciones decimales:

Son las encargadas de representar los números del sistema decimal,

representando cada dígito decimal mediante una cadena de d ígitos binarios.

Para representar 10 dígitos distintos (0, 1, ..., 9) se necesita un número mínimo

de 4 bits. Con 4 bits se pueden representar 16 d ígitos distintos, luego se pueden

asignar distintas combinaciones de bits a los 10 dígitos decimales

Codificación en BCD:

Es la codificación decimal más sencilla y representa a los diez dígitos decimales

asignándoles el código binario de su representación binaria pura con 4 bits. Con

esa representación un número decimal se evalúa mediante la expresión:

b3 ·23 + b2 ·2 2 + b1 ·21 + b0 ·20 = b3 ·8 + b2 ·4 + b1 ·2 + b0 ·1

Por esta razón al código BCD se le conoce también como código 8-4-2-1.

Page 14: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

14

27

Codificación de números en BCD

Ejemplo:

En BCD, el número decimal de dos dígitos 56 se escribe (5) y (6), es decir 0101 0110, mientras que en binario puro se escribe como111000.

28

Codificación de números en Exceso-3 (XS-3)

Es una codificación derivada de la codificación BCD sin más que sumar 3 (0011) a la representación BCD de cada dígito decimal.

Page 15: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

15

29

Código Gray

30

Código Johnson

Page 16: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

16

31

Codificaciones alfanuméricas

Son las codificaciones encargadas de representar los caracteres alfabéticos, numéricos, signos de puntuación y signos de control mediante cadenas de dígitos binarios.

Al menos deben representar 26 letras del alfabeto y 10 dígitos, es decir 36caracteres, luego necesitan un mínimo de 6 bits. En realidad, se necesitan más caracteres, de forma que las codificaciones más utilizadas emplean 7 y 8 bits:

ASCII

EBCDIC (Extended BCD Interchange Code).

Unicode (16 bits)

32

Código ASCII

ASCII:

•El Código estándar americano para el intercambio de información (American Standard Code for Information Interchange) es el código alfanumérico más extendido.

•El código ASCII original utilizaba 7 bits para representar 128 caracteres (0 hasta 7F en hexadecimal (0111 1111)) donde los primeros 32 caracteres son de control (no gráficos o invisibles) y los restantes son gráficos (visibles).

•En la actualidad ASCII es un código de 8 bits, también conocido como ASCII extendido.

•Los códigos ASCII extendidos presentan variaciones nacionales. El código más usado en nuestra zona geográfica es el Latin-1.

Page 17: Sistemas de numeración, operaciones y códigoscoolab.umh.es/sea/microcontroladores/tema1_sistemas_numeracion.pdf1 1 Tema 1: Sistemas de numeración, operaciones y códigos. 2 Para

17

33

Código ASCII

34

Bibliografía

FUNDAMENTOS DE SISTEMAS DIGITALES

T.L. Floyd

Prentice Hall