Story Transcript
Universidad Nacional de Quilmes
Diplomatura en Ciencia y Tecnología
TÉCNICAS DIGITALES
SISTEMAS NUMÉRICOS Los sistemas numéricos. La necesidad de contar objetos llevó a distintas culturas a simbolizar de distintas formas su valor numérico. La forma primaria de simbolizar el número de elementos que forman un conjunto es establecer una correspondencia con un número igual de signos; Por ejemplo cuando contamos con los dedos, o bien, si indicamos cuatro tornillos con el signo “||||”. Este sistema de representación sería unario pues utiliza un solo símbolo y seguramente fue rápidamente reemplazado por su incomodidad para representar conjuntos de muchos elementos. Para utilizar menor cantidad de signos para representar una determinada cantidad se utilizan operaciones implícitas entra ellos; Por ejemplo, los romanos de signos de valor creciente: I, V, X, L, C, D, M, etc. que se agrupan de izquierda a derecha, sumándose o restándose entre sí según siguieran o no el orden decreciente: CXVII = cien + diez + cinco + uno + uno = ciento diecisiete MCMV = mil + (mil-cien) + cinco = mil novecientos cinco. Este es un sistema práctico para contar conjuntos no demasiado grandes, pero no sirve para realizar operaciones y mucho menos para representar partes de la unidad.
Los sistemas posicionales o “pesados” Algunos pueblos orientales y americanos (mayas) desarrollaron sistemas posicionales, basados en un conjunto limitado y constante de símbolos entre los cuales uno de ellos (para nosotros el cero) indicaba la ausencia de elementos. En estos últimos sistemas cada símbolo además del número de unidades que representa considerado en forma aislada, tiene un significado o “peso” distinto según la posición que ocupa en el grupo de caracteres del que forma parte. De esta forma es posible representar sistemáticamente cualquier número entero o racional, utilizando en forma combinada un número limitado de caracteres. Características de los sistemas posicionales. a) Constan de un número finito de símbolos individuales distintos, cuya cantidad constituye la base del sistema. b) Cada símbolo representa una cantidad específica de unidades. c) Existe un símbolo para indicar la ausencia de elementos a representar. d) Los símbolos pueden ordenarse en forma monótona creciente. Recopilación y aportes: Ing. Alberto J. Mazzone
Página 1
UNQ
Técnicas Digitales
e) Formando parte de un número compuesto por varios símbolos un mismo carácter o símbolo tiene un significado o “peso” distinto según su posición relativa en el conjunto. f) La posición a la izquierda de la coma corresponde a las unidades (peso 1), cada posición tiene el peso del que está a su derecha multiplicada por la base, siempre que el peso de cada posición es una potencia de la base. Símbolos utilizados: A fines de que resulte fácil simbolizar los números de todos los sistema posicionales, los símbolos de la numeración decimal (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), que se usan en otros sistemas, se ha acordado su significado es el mismo que en el decimal (representan la misma cantidad de unidades), y, para sistemas de mas de diez símbolos, se utilizan como símbolos numéricos las letras del abecedario en el orden establecido cuya correspondencia con sus equivalentes decimales es: A = 10, B =11, C =12, etc. Formación de números en distintas bases: Estudiaremos solamente los decimales, por ser los de uso universal; el binario, por ser el utilizado en técnicas digitales; el octal (base ocho) y el hexadecimal (base dieciséis), que son también usados por razones prácticas (los números que representan la misma cantidad de elementos tienen menos dígitos que el binario y determinar su equivalencia con el binario es más simple que el decimal. Tomaremos al sistema decimal como centro del análisis por razones de comprensión y por habitualidad de su uso. Sistema decimal: Un número entero será de la forma: . . . . . d3d2d1d0 = . . . . . d3x103 + d2x102 +d1x101 + d0x100 Donde di v 0; 1; 2; 3; 4; 5; 6; 7; 8; 9 . Es decir que con cuatro dígitos decimales se puede llegar hasta el número: 9999 = 9x103 + 9x102 + 9x101+ 9x100 Por lo tanto, tomando hasta cuatro dígitos en este sistema se pueden formar 10.000 = 10 4 combinaciones o números distintos, con un rango de conteo de del 1 al 9.999. En general con n dígitos se forman 10n combinaciones o números distintos y con ellos se puede contar hasta 10n-1. Sistema binario: Un número entero será de la forma: . . . . . b3b2b1b0 = (. . . . . b3x23 + b2x22 +b1x21 + b0x20)10 Donde bi v 0; 1 . Es decir que con cuatro dígitos binarios se puede llegar hasta el número: 2
UNQ
Técnicas Digitales (1111)2 = (1x23 + 1x22 + 1x21+ 1x20)10 = (15)10
Por lo tanto, tomando hasta cuatro dígitos en este sistema se pueden formar (10.000)2 = 24 = 16 números distintos. En general con n dígitos se forman 2n números distintos y con ellos se puede contar hasta 2n-1. Sistema octal: Un número entero será de la forma: . . . . . o3o2o1o0 = (. . . . . o3x83 + o2x82 +o1x81 + o0x80)10 Donde oi v 0; 1, 2, 3, 4, 5, 6,7 . Es decir que con cuatro dígitos octales se puede llegar hasta el número: (7777)8 = (7x83 + 7x82 + 7x81+ 7x80)10 = (4095)10 Por lo tanto, tomando hasta cuatro dígitos en este sistema se pueden formar (10.000)8= 84 = 4096 números distintos. En general con n dígitos se forman 8n números distintos y con ellos se puede contar hasta 8n-1. Sistema hexadecimal: Un número entero será de la forma: . . . . . h3h2h1h0 = (. . . . . h3x163 + h2x162 +h1x161 + h0x160)10 Donde hi v 0; 1, 2, 3, 4, 5, 6,7, 8, 9, A, B, C, D, E, F . Es decir que con cuatro dígitos hexadecimales se puede llegar hasta el número: (FFFF)16 = (15x163 + 15x162 + 15x161+ 15x160)10 = (65.535)10 Por lo tanto, tomando hasta cuatro dígitos en este sistema se pueden formar (10.000)16 = 164 = 65.536 números distintos. En general con n dígitos se forman 16n números distintos y con ellos se puede contar hasta 16n-1. Se observa que: 10B = 1x21+0x20 = 2d 10O = 1x81+0x80 = 8d 10H = 1x161+0x160 = 16d -----------------------10R = 1xr1+0xr0 = Rd 3
UNQ
Técnicas Digitales
Es decir que la base en cualquier sistema posicional se representa por 10 si respetamos la convención de signos ya explicada. El cuadro que sigue indica la correspondencia entre los dieciséis primeros símbolos numéricos en los cuatro sistemas tratados en el curso. Cuadro I
Binario
Octal
Decimal
Hexadecimal
0
0
0
0
1
1
1
1
10
2
2
2
11
3
3
3
100
4
4
4
101
5
5
5
110
6
6
6
111
7
7
7
1000
10
8
8
1001
11
9
9
1010
12
10
A
1011
13
11
B
1100
14
12
C
1101
15
13
D
1110
16
14
E
1111
17
15
F
Como se ve si complementamos con ceros no significativos la columna correspondiente a la numeración binaria, con tres bits se puede representar los dieciséis primeros símbolos octales, con cuatro los hexadecimales, los decimales también necesitan cuatro bits para ser representados en binario pero los diez últimos no se utilizan.
4
UNQ
Técnicas Digitales
Números Fraccionarios: Consideremos un número fraccionario puro, es decir sin parte entera, expresado en forma decimal: 0,65625 = 6x10-1 + 5x10-2 + 6x10-3 + 2x10-4 + 5x10-5 Obsérvese que cumple con las condiciones de los sistemas pesados “el peso de una posición es igual al peso de la posición a su derecha multiplicado por la base”. Esto último vale cualquiera sea su base por ejemplo: (0,10101)B = 1x2-1 + 0x2-2 + 1x2-3 + 0x2-4 + 1x2-5 = (0,65625)D Es decir que un número con parte entera y parte fraccionaria, en una base cualquiera R tendrá la siguiente estructura: NR =. . . . r3xR3 + r2xR2 + r1xR1 + r0xR0 + r-1xR-1 + r-2xR-2 + r-3xR-3 + . . . = = (NE,NF)R = NER + NFR Con ri ∈ 1, 2, 3, . . . ., R-1 Esta forma de ver a un número con parte fraccionaria tiene que ver con el tema que sigue. Cambios de base: Las bases que hemos visto hasta ahora son de lejos las más utilizadas en la electrónica digital, la base 10, por ser de uso universal; la base 2 porque los circuitos para manipularlas son simples, económicos y muy seguros, pero esta base tiene el inconveniente que para indicar una misma cantidad utilizan mucho más caracteres que los sistemas de bases mayores y como veremos el cambio de base entre aquellas que son potencias de 2 es muy simple y este es el motivo por el que se utilizan las numeraciones octales y hexadecimales. Cambiar a decimal un número de base cualquiera “R”: Es un cambio simple dada la universalidad de este sistema las cuentas son habituales y se pueden hacer con cualquier calculadora; para ello basta evaluar las expresiones que estamos tratando hasta ahora, al definir los sistemas de numeración posicionales en el sistema decimal, es decir: 𝑁𝑅 =. . . . + 𝑟3 × 𝑅 3 + 𝑟2 × 𝑅 2 + 𝑟1 × 𝑅1 + 𝑟0 + 𝑟−1 × 𝑅 −1 + 𝑟−2 × 𝑅 −2 + . . . Cambiar a una base cualquiera R un número decimal: Para ello utilizaremos el método de las divisiones sucesivas para la parte entera y el de los productos sucesivos para la parte fraccionaria, es decir que al número en cuestión lo veremos de la siguiente manera: 𝑁 = 𝑁𝐸 + 𝑁𝐹 Para la parte entera será: 𝑁𝐸 = . . . . +𝑟3 × 𝑅 3 + 𝑟2 × 𝑅 2 + 𝑟1 × 𝑅 + 𝑟0 5
𝐴
UNQ
Técnicas Digitales
Todo esto expresado en base 10; sí ahora dividimos ambos miembros por R y llamamos al cociente Q1 y al resto R0, por definición de división entera tendremos: 𝑁𝐸 = 𝑄1 × 𝑅 + 𝑅0 Sí dividimos nos queda: 𝑁𝐸 𝑅0 = 𝑄1 + 𝑅 𝑅
𝐵
Reemplazando el valor de NE expresado en 𝐴 queda: . . . . +𝑟3 × 𝑅 3 + 𝑟2 × 𝑅 2 + 𝑟1 × 𝑅 + 𝑟0 𝑅
= . . . . + 𝑟3 × 𝑅 2 + 𝑟2 × 𝑅 +
𝑟0 𝑅
𝐶
Comparando las expresiones 𝐵 y 𝐶 obtenemos: 𝑅0 = 𝑟0 Es decir que ya conocemos el valor del dígito menos pesado en base R que estamos buscando, continuando con este procedimiento hasta llegar al valor Qi = 1 y tomado este valor como bit de mayor peso y luego los restos de atrás para adelante tenemos resuelto el problema. Para la parte fraccionaria la situación es distinta: 0, 𝑁𝐹 = 𝑟−1 × 𝑅 −1 + 𝑟−2 × 𝑅 −2 + 𝑟−3 × 𝑅 −3 + . . . .
𝐷
Sí multiplicamos a la expresión D y llamamos al producto NE-1, NF-1 tendremos la siguiente situación: 𝑅 × 𝑁𝐹 = 𝑁𝐸−1 , 𝑁𝐹−1 = 𝑁𝐸−1 + 0, 𝑁𝐹−1
𝐸
A la expresión E la podemos expresar: 𝑅 × 𝑁𝑓 = 𝐸−1 + 0, 𝑁𝐹−1 = 𝑟−1 + 𝑟−2 × 𝑅 −1 + 𝑟−3 × 𝑅 2 . . . ∴ 𝐸−1 = 𝑟−1
𝐹
Se continua multiplicando hasta que: NF-i = 0, o bien NF-i sea igual a algún valor ya obtenido, en cuyo caso la parte fraccionaria sería periódica con el período igual a la parte ya calculada, o bien hasta lograr la precisión deseada. Ejemplo: Transformar en binario al número 102,84 con una precisión de 6 decimales binarios aproximando el último. a) Parte entera.
6
UNQ
Técnicas Digitales Cociente Resto
Para mayor claridad construiremos una tabla:
En la primer columna se indica la operación, en la segunda el cociente y en la tercera el resto. El bit de mayor peso es 1, el último cociente (siempre es 1) y luego se toman los restos de abajo hacia arriba. Verificación: 6
5
4
3
2
1
102 2
51
0
51 2
25
1
25 2
12
1
12 2
6
0
6 2
3
0
3 2
1
1
0
1 × 2 + 1 × 2 + 0 × 2 + 0 × 2 + 1 × 2 + 1 × 2 + 0 × 2 = 102 La parte entera es entonces: 1100110.
b) Parte fraccionaria: 0,84 = 𝑏−1 2−1 + 𝑏−2 2−2 + 𝑏−3 2−3 + 𝑏−4 2−4 + 𝑏−5 2−5 + 𝑏−6 2−6 +. . . . 2 × 0,84 = 1,68 = 𝑏−1 + 𝑏−2 2−1 + 𝑏−3 2−2 + 𝑏−4 2−3 + 𝑏−5 2−4 + 𝑏−6 2−5 +. . . . → 𝑏−1 = 1 2 × 0,68 = 1,36 = 𝑏−2 + 𝑏−3 2−1 + 𝑏−4 2−2 + 𝑏−5 2−3 + 𝑏−6 2−4 +. . . .
→ 𝑏−2 = 1
2 × 0,36 = 0,72 = 𝑏−3 + 𝑏−4 2−1 + 𝑏−5 2−2 + 𝑏−6 2−3 +. . . .
→ 𝑏−3 = 0
2 × 0,72 = 1,44 = 𝑏−4 + 𝑏−5 2−1 + 𝑏−6 2−2 . . . .
→ 𝑏−4 = 1
2 × 0,44 = 0,88 = 𝑏−5 + 𝑏−6 2−1 . . . .
→ 𝑏−5 = 0
2 × 0,88 = 1,76 = 𝑏−6 + . . . . . . . . . . . .
→ 𝑏−6 = 1
Nf = 0,110101 NB = 1100110,110101 El ejemplo se desarrolló de decimal a binario puesto que el cambio de base entre la binaria y las que son potencias de 2 es muy simple como ya veremos. Convertir un número cuya base es potencia de 2 en binario y vicerversa.
a) Convertir el número (AA)H en binario y luego en octal. Para justificar en parte el método utilizaremos como paso intermedio al sistema decimal: (AA)H = (10 x 161 + 10 x 160)D = 10 x 24 + 10 = pero 10 = 23 + 2
reemplazando nos queda:
(AA)H = 23 + 2 24 + 23 + 2 = 27 + 25 + 23 + 2 = 10101010 7
B
UNQ
Técnicas Digitales
Es decir, por consiguiente: (AA)H = (10101010)B. Pero de acuerdo a la tabla I (A)H = (1010)B. Es decir que se pudo haber cambiado directamente cada digito hexadecimal por su equivalente binario dado en el tabla I. para generalizar el procedimiento debemos agregar al valor dado en dicha tabla los ceros no significativos cuando sea necesario. Veamos ahora la conversión a octal: (10101010)B = 27 +25 + 23 + 2 = 23 x 23 x 2 + 22 x 23 +23 +2 = 2 x82 + (4+1)2 x 8+2 = = 2 x 82 + 5 x 81 + 2 x 80 = (252)O
Los digitos octales necesitan 3 dígitos binarios, contando los dígitos no significativos para lograr la conversión. Como 2O = 010B y 5O = 101B podemos escribir: 5
2
2
010 101 010
= 252𝑂 𝐵
Veamos otro ejemplo con un número con parte fraccionaria: NH = E4C,D5H = 14 x 162 + 4 x 16 +12 + 13 x 16-1 + 5 x 16-2 = 3660,83203125 Y como: EH = 1110B; 4H = 0100B; CH = 1100B; DH = 1101B; 5H = 0101B ; Reemplazando obtenemos: 𝐸
𝐸4𝐶, 𝐷5
𝐻=
𝐶
4
𝐷
5
1110 0100 1100 , 1101 0101
= 𝐵
Verificación:
211 + 210 + 29 + 26 + 23 + 22 + 2-1 + 2-2 + 2-4 + 2-6 + 2-8 = 3660, 83203125
Ahora convertiremos el binario a octal. Para tomar los 3 bits se debe partir de la coma hacia la izquierda y hacia la derecha completando con ceros no significativos si hiciera falta. 7
1
1
4
6
5
2
111 001 001 100 , 110 101 010
= 7114,652
𝑂
𝐵
Verificación:
7x83 + 1x82 + 1x81 + 4 + 6x8-1 + 5x8-2 + 2x8-3 = 3660,83203125
8