Sunteți pe pagina 1din 15

Clases

 Algoritmos y Programación

Tema 1: Sistemas
Numéricos

Contenido:
Resumen
Sistemas Numéricos Posicionales SNP
Conversiones entre Sistemas Numéricos
Operaciones Aritméticas con SNP

Elaborado por JCSoft Aplicaciones Informáticas


Clases

Resumen

Al terminar el tema el
alumno debe:
 Conocer a cabalidad
que es un sistema
numérico posicional.
 Identificar los sistemas
Binarios, Octales y
Hexadec.
 Dominar la conversión
entre los sistemas
Binarios, Octales y
Hexadec.
 Dominar las operaciones
aritméticas de suma y
resta en los sistemas
Binarios, Octales y
Hexadecimales

En el tema se analizan los sistemas numéricos posicionales SNP que son


aquellos en los cuales la posición de los dígitos que componen al número
tienen un “peso asociado” en el valor del mismo. Estos números se
pueden representar como una suma de potencias donde cada sumando es
un dígito multiplicado por la base o raíz del número elevado a una
potencia acorde a la posición del mismo.
Como bien los circuitos digitales tienen señales que normalmente están en
una de dos condiciones: alto-bajo, cargado-descargado, activado-
desactivado, estos representan a bits que toman los valores 0 y 1
Aunque las bases octales y hexadecimales no se emplean frecuentemente
éstas son convenientes para números con múltiples bits en un sistema
digital y por ello son motivo de estudio.
El sistema octal necesita 8 dígitos por lo que emplea los dígitos de 0 a 7,
esto implica que se necesitan 3 bits para poder representar su máximo
valor (7)
El sistema hexadecimal necesita 16 dígitos por lo que complementa los
dígitos decimales 0 a 9 con las letras A a la F, de igual forma se necesitan
4 bits para la representación de su máximo valor (F=15)
Las conversiones entre sistemas de distintas bases son a veces necesarias
para el trabajo de los sistemas informáticos, luego se establecen las reglas
para las conversiones entre los distintos sistemas numéricos vistos en el
tema.
El capítulo termina haciendo referencia a la ejercitación de las
operaciones aritméticas de SNP de bases no decimales.

Elaborado por JCSoft Aplicaciones Informáticas


Clases

Sistemas Numéricos Posicionales SNP

Sistemas Numéricos 1. El sistema numérico tradicional que se estudia en la escuela y se


Posicionales emplea diariamente se conoce como sistema numérico posicional
(SNP).
2. Este sistema se representa por una cadena de dígitos, donde cada
posición del dígito tiene un “peso asociado”.
Ej: 1734 = 1*1000 + 7*100 + 3*10 + 4*1
Note que cada peso es una potencia de 10 según la posición del dígito,
ya que:
1734 = 1*103 + 7*102 + 3*101 + 4*100
3. La introducción del punto decimal permite el uso de potencias de 10
tanto positivas como negativas.
Ej: 5185.68 = 5*1000 + 1*100 + 8*10 + 5*1 + 6*0.1 + 8*0.01
Representando el numero como potencias de 10 se tendrá:
5185.68 = 5*103 + 1*102 + 8*101 + 5*100 + 6*10-1 + 8*10-2
En general un número D de la forma d3d2d1d0.d-1d-2 toma el valor:
D = d3*103 + d2*102 + d1*101 + d0*100 + d-1*10-1 + d-2*10-2
4. En la expresión anterior la cifra 10 se conoce como la base o raíz del
sistema numérico
5. La raíz de los SNP debe ser un valor entero r
6. Un dígito en la posición i tiene un peso ri
Por lo tanto la forma general de un número en un SNP es la siguiente:
dp-1 dp-2 . . d1d0.d-1 d-2 . . d-n
donde se consideran:
p dígitos a la izquierda y n dígitos a la derecha del punto, el cual
en un sistema de base 10 se conoce como punto decimal.
7. El valor del número es la suma de cada dígito multiplicado por la
correspondiente potencia de la raíz.
Luego: p 1

d *r
i  n
i
i

Elaborado por JCSoft Aplicaciones Informáticas


Clases

D=

donde: r = base del número en cuestión


p = dígitos a la izquierda del punto
n = dígitos a la derecha del punto
i = posición del digito dentro del numero
d = valor del digito en la posición i
8. Si se exceptúan los posibles ceros anteriores y posteriores la
representación de un número en un SNP es ÚNICA
9. El dígito que está más a la izquierda se llama dígito de orden
superior o más significativo y el de más a la derecha es el dígito de
orden inferior o menos significativo.

Números Binarios, Octales y Hexadecimales.


Números Binarios Como bien los circuitos digitales tienen señales que normalmente están
en una de dos condiciones: alto-bajo, cargado-descargado, activado-
desactivado, los mismos representan dígitos binarios (bits) que toman
uno de los dos valores: 0 y 1
Lo anterior implica que se use la base 2 para representar números en un
sistema digital siendo la representación de un sistema binario de la
forma:

bp-1 bp-2 . . b1b0.b-1 b-2 . . b-n

y su valor
p 1
B= b * 2
i  n
i
i

En los números binarios el punto se denomina punto binario.


Como los números en el sistema binario representan bits el bit ubicado
más a la izquierda se llama de orden superior o más significativo (msb
= most significant bit) y el bit ubicado más a la derecha se llama de
orden inferior o menos significativo (lsb = less significant bit).

Números Octales y Aunque los números en otras bases diferentes a las de 2 y 10 no se


Hexaddecimales procesan a menudo directamente las bases 8 y 16 son convenientes para
números con múltiples bits en un sistema digital.
El sistema Octal usa una base 8 mientras que el sistema Hexadecimal
usa base 16.
El sistema Octal necesita 8 dígitos por lo que emplea los dígitos de 0 a
7
El sistema Hexadecimal necesita 16 dígitos por lo que complementa los
dígitos decimales 0 a 9 con las letras A a la F donde A=10, B=11, C=12
hasta F=15
Tabla de Números Decimal Binario Octal Hexadecimal
Decimales, Binario, 0 0 0 0
Octales y Hexadecimales 1 1 1 1
2 10 2 2

Elaborado por JCSoft Aplicaciones Informáticas


Clases

3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

Notas: Del sistema Octal se puede decir que fue muy popular hace años debido
a que ciertas computadoras tenían indicadores luminosos agrupados de 3
en 3. Actualmente no es muy usado.
En el sistema Hexadecimal 2 dígitos representan a 1 byte (8 bits) y 2n
dígitos representan una palabra de n bytes ya que cada par de dígitos
constituye un byte.
Ejemplo el número hexadecimal 5678ABCD16 consiste en 4 bytes con
los valores siguientes: 5616 7816 AB16 CD16
En este contexto a cada dígito hexadecimal se le llama semibyte o
nibble.
Los números hexadecimales se usan comúnmente para describir el
espacio de direcciones de memoria de la computadora.

Elaborado por JCSoft Aplicaciones Informáticas


Clases

Conversiones entre Sistemas Numéricos

I- De cualquier base a Se tenía visto que para llevar a la base decimal desde cualquier base se usaba la
la base decimal fórmula:
p 1
D= d *r
i  n
i
i

donde: r = base del número en cuestión


p = dígitos a la izquierda del punto
n = dígitos a la derecha del punto
i = posición del digito dentro del numero
d = valor del digito en la posición i

Luego el valor de un número puede calcularse de acuerdo a la expresión anterior


convirtiendo cada dígito del número a su equivalente en base 10, expandiendo la
fórmula mediante la aritmética en base 10.
Representando esquemáticamente la consideración de los exponentes de la base
del SNP de acuerdo a la formula anterior se tendrá:

Ejemplo:

5185.687 = 5*103+1*102+8*101+5*100+6*10-1+8*10-2+7*10-3
3210 123
+ – exponentes

a) Binario a Decimal Ejemplos:


100112 = 1*24+0*23+0*22+1*21+1*20
= 1*16+1*2+1*1 = 1910

1000102 = 1*25+1*21 = 3410

Otra forma de considerar la conversión de binario a decimal es la de la

Elaborado por JCSoft Aplicaciones Informáticas


Clases

representación grafica de un byte. Como se conoce un byte está compuesto


por 8 bits* por lo su esquema seria como el que sigue:

bits  7 6 5 4 3 2 1 0

* la palabra bit es la contracción de binary digit es decir digito binario.

Luego cada bit con el valor 1 dentro del byte aportará un valor equivalente a la
base 2 elevado al índice de dicha posición, luego se tendría:

valor  128 64 32 16 8 4 2 1

Considerando valores con punto binario:

101.0012 = 1*22+0*21+1*20 +0*2-1+0*2-2+1*2-3


= 1*4 +0*2 + 1*1 +0*0.5 +0*0.25 + 1*0.125 = 5.12510

b) octal a decimal Ejemplos:


13578 = 1*83 + 3*82 + 5*81 + 7*80
= 1*512 + 3*64 + 5*8 + 7*1
= 512 + 192 * 40 + 7 = 75110

2046.178 = 2*83 + 4*81 + 6*80 + 1*8-1 + 7*8-2


1 1
= 2*512 + 4*8 + 6*1 + 1*  7 *
8 64
= 1024 + 32 + 6 + 1*0.125 + 7*0.015625
= 1062 + 0.125 + 0.109375 = 1062.234310

c) hexa a decimal Ejemplos:


1CE816 = 1*163 + 12*162 + 14*161 + 8*160
= 1*4096 + 12*256 + 14*16 + 8*1
= 4096 + 3072 + 224 + 8 = 740010

9F.46C16 = 9*161 + 15*160 + 4*16-1 + 6*16-2 + 12*16-3


1 1 1
= 9*16 + 15*1 + 4*  6 * 2  12 * 3
16 16 16
= 144 + 15 + 4*0.0625 + 6*0.0039 + 12*0.000244
= 159 + 0.25 + 0.0234 + 0.00292 = 159.2763210

II De la base decimal a Cuando se tiene una conversión de un número en base 10 a otra base se usa el
cualquier base método de las divisiones sucesivas, es decir:
“se realizan divisiones del número entre la base o raíz a la que se quiere
convertir hasta obtener un cociente igual a cero, siendo los residuos de estas
divisiones ordenado en forma inversa, el resultado”.

a) decimal a binario Ejemplo:


Convertir el valor 17910 a binario:
179 2

Elaborado por JCSoft Aplicaciones Informáticas


Clases

1 89 2
1 44 2
0 22 2
0 11 2
1 5 2
1 2 2
0 1 2
1 0  cociente = 0

luego: 17910 = 101100112

b) decimal a octal Ejemplo:


Convertir el valor 46710 a octal:
467 8
3 58 8
2 7 8
7 0  cociente = 0

luego: 46710=7238

c) decimal a hexa Ejemplo:


Convertir el valor 341710 a hexadecimal:
3467 16
9 213 16
5 13 16
13 0  cociente = 0
(D)

luego: 341710 = D5916

III octal y hexa a binario Mediante sustitución de cada dígito octal o hexadecimal por su correspondiente
y viceversa valor binario.

a) octal a binario Como una cadena de 3 bits puede tener 8 combinaciones diferentes cada cadena
de 3 bits puede representar de una manera única un dígito octal.
En otras palabras el máximo valor de digito octal es el 7 el cual puede
representarse en 3 dígitos binarios, de la siguiente manera:

valor  4 2 1

Ya que al tercer bit le corresponde el valor 4, al segundo 2 y al primer bit el


valor 1 que sumados darán el valor 7

Ejemplos:
13578 = 001 011 101 1112
2046.178 = 010 000 100 110 . 001 1112

Elaborado por JCSoft Aplicaciones Informáticas


Clases

b) binario a octal Es muy sencillo convertir un número binario a octal, esto se logra separando, de
derecha a izquierda los dígitos a la izquierda del punto binario y de izquierda a
derecha los dígitos a la derecha del punto binario, en grupos de 3 bits y
reemplazándolos por sus correspondientes valores octales.
Ejemplos:
1000110011102 = 100 011 001 1102 = 43168

111011011101010012 = 011 101 101 110 101 0012 = 3556518

10.10110010112 = 010 101 100 101 1002 = 2.54548

c) hexa a binario De manera semejante al caso de los números octales una cadena de 4 bits puede
representar de una manera única un dígito hexadecimal.
En otras palabras el máximo valor de digito hexadecimal es 15 (F) el cual puede
representarse en 4 dígitos binarios, de la siguiente manera:

valor  8 4 2 1

Ya que al cuarto bit le corresponde el valor 8 al tercer bit el valor 4, al segundo


2 y al primer bit el valor 1 que sumados darán el valor 15
Ejemplos:
BEAD16 = 1011 1110 1010 11012
9F.46C16 = 1001 1111 . 0100 0110 11002

d) binario a hexa De igual forma que en el caso de los números octales pero ahora considerando
grupos de 4 bits puede convertirse de binario a hexadecimal.
Es decir se hacen grupos de 4 bits de derecha a izquierda a la izquierda del punto
binario y de izquierda a derecha para los dígitos a la derecha del punto binario
Ejemplos:
1000110011102 = 1000 1100 11102 = 8CE16

111011011101010012 = 0001 1101 1011 1010 10012 = 1DBA916


0010
10.10110010112 = . 1011 0010 11002 = 2.B2C16

IV octal a hexa y Para este caso la conversión se realiza utilizando una base intermedia (como por
viceversa ejemplo la binaria), esquemáticamente se tendrá:

Octal Binaria Hexadecimal

a) octal a hexa Ejemplos:


13578 = 0010 1110 11112 = 2EF16

2046.178 = 0100 0010 0110 0011 11002 = 426.1C16

b) hexa a octal Ejemplos:

Elaborado por JCSoft Aplicaciones Informáticas


Clases

BEAD16 = 001 011 111 010 101 1012 = 1372558

9F.46C16 = 010 011 111 . 010 001 101 1002 = 237.21548

Resumen de Resumen de Conversiones para Bases Comunes.


Conversiones I- De cualquier base a base decimal
Uso de la fórmula:
p 1
D= d *r
i  n
i
i

donde: r = base del número en cuestión


p = cantidad de dígitos a la izquierda del punto
n = cantidad de dígitos a la derecha del punto
di = dígito en la posición i

II- De base decimal a otra base


Mediante el método de las divisiones sucesivas, es decir, divisiones del
número en cuestión entre la base a la que se quiere llevar, hasta obtener un
cociente igual a cero, siendo el resultado los residuos de dichas divisiones
colocados en forma inversa.

III- De bases Octal y Hexadecimal a Binaria y viceversa


Mediante sustitución de cada dígito octal o hexadecimal por su valor
binario, sabiendo que cada dígito octal se representa mediante 3 dígitos
binarios y a cada Hexadecimal le corresponden 4 dígitos binarios.
De Binario a Octal o Hexadecimal se procede de forma inversa o sea a cada
3 o 4 dígitos binarios le corresponden un dígito Octal o uno Hexadecimal
respectivamente.

IV- De base Octal a Hexadecimal y viceversa


Mediante sustitución a través de una base intermedia como por ejemplo la
base binaria, es decir se pasa de Octal a binario y luego a Hexadecimal
acorde al punto anterior y de la misma forma en caso de ser de
Hexadecimal a Octal.

Elaborado por JCSoft Aplicaciones Informáticas


Clases

Operaciones Aritméticas con SNP

Suma de Números Binarios, Octales y Hexadecimales.


Suma decimal Ejemplo de suma decimal y forma en que se producen los acarreos.

acarreos  1 1 0 14 10 a 10 10 a 4 10 a
3 8 5 4 1 0 1 4 0
+ 1 9 r r r
4 0 4

Nótese que al ser la suma de la columna en cuestión mayor que el valor de


la base se divide entre ésta última, siendo el resto de dicha división el
resultado de la columna y el cociente el acarreo.

Luego la metodología a seguir será (para cualquier SNP) la de dividir la


suma de los números de la columna en cuestión entre la base del SNP
donde el residuo de esta división será el resultado de la columna (r) y el
cociente el acarreo (a).

Suma binaria Ejemplos de suma binaria:

C acarreo <101111000>
X 190 101111102 1 2 2 2 3 2
Y 141 100011012 1 0 0 1 1 1
331 1010010112

Elaborado por JCSoft Aplicaciones Informáticas


Clases

C acarreo <001011000>
X 173 101011012
Y 44 001011002
217 110110012

C acarreo <011111110>
X 127 011111112
Y 63 001111112
190 101111102

C acarreo <000000000>
X 170 101010102
Y 85 010101012
255 111111112

Otra forma de considerar las operaciones de suma es la que se muestra en


la tabla que se describe a continuación:

Tabla de Suma Binaria


ci X Y X+Y c
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

donde ci y c son acarreo inicial y acarreo respectivamente

Suma octal
12 8 3 8 9 8 2 8
4 1 3 0 1 1 2 0

C acarreo <01010>
X 727 13278 1*83+3*82+2*81+7*80 = 512+192+16+7 = 727
Y 389 6058 6*82+0*81+5*80 = 384+0+5 = 389
1116 21348 2*83+1*82+3*81+4*80 = 1024+64+24+4 = 1116

Suma hexadecimal
15 16 25 16 17 16 14 16
F 0 9 1 1 1 E 0

C acarreo <0110 0>


X 51174 C7E616 12*163+7*162+14*161+6*160 =49152+1792+224+6 = 51174
Y 6585 19B916 1*163+9*162+11*161+9*160 = 4096+2304+176+9 = 6585
57759 E19F16 14*163+1*162+9*161+15*160 =57344+256+144+15= 57759

Elaborado por JCSoft Aplicaciones Informáticas


Clases

Resta de Números Binarios, Octales y Hexadecimales.


Resta decimal Ejemplo de resta decimal y forma en que se producen los préstamos.
(7)(15)
0 1 0
3 8 5
– 1 9
3 6 6

Nótese que al ser el valor 5 menor que el valor 9 no es posible efectuar la


resta por lo que se toma prestado una unidad de la columna a la izquierda,
pero como estas son decenas el préstamo es de 10 unidades que con las 5
que existían ahora el valor es de 15, por lo que si se puede efectuar la resta.
Como el valor de la columna de la izquierda era 8 y prestó 1 unidad ahora
el nuevo valor será de 7, pero como a 7 se le puede restar 1 no es necesario
realizar un préstamo.

Luego la metodología a seguir será (para cualquier SNP) la de tomar una


unidad de la columna de la izquierda cuando no sea posible la resta, esta
unidad es en base a la raíz del SNP en cuestión (10 en la decimal como se
vio, 2 en la binaria, 8 en la octal, y así) descontando dicho préstamo de la
unidad a la columna de la izquierda.

Resta binaria Ejemplos de restas binarias:

B préstamo <00000010>
X 190 101111102
Y 141 100011012
49 001100012

B préstamo <00000000>
X 173 101011012
Y 44 001011002
129 100000012

B préstamo <00000000>
X 127 011111112
Y 63 001111112
64 010000002

B préstamo <10101010>
X 170 101010102
Y 85 010101012
85 010101012

Tabla de Resta Binaria


Otra forma de considerar las operaciones de resta es la que se muestra en la
tabla que se describe a continuación:

Elaborado por JCSoft Aplicaciones Informáticas


Clases

bi X Y X-Y b
0 0 0 0 0
0 0 1 1 1
0 1 0 1 0
0 1 1 0 0
1 0 0 1 1
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

donde bi y b son préstamo inicial y préstamo /

Resta octal B préstamo <1000>


X 727 13278 1*83+3*82+2*81+7*80 = 512+192+16+7 = 727
Y 389 6058 6*82+0*81+5*80 = 384+0+5 = 389
338 5228 5*82+2*81+2*80 = 320+16+2 = 338

Resta hexadecimal B préstamo <1010>


X 51174 C7E616 12*163+7*162+14*161+6*160 =49152+1792+224+6 = 51174
Y 6585 19B916 1*163+9*162+11*161+9*160 = 4096+2304+176+9 = 6585
44589 AE2D16 10*63+14*162+2*161+13*160 =40960+3584+32+13 = 44589

Elaborado por JCSoft Aplicaciones Informáticas


Clases

Elaborado por JCSoft Aplicaciones Informáticas