Вы находитесь на странице: 1из 14

Introducción a la Programación

(Ing. Industrial, Comunicaciones, Electromecánica y Alimentos)

2012
Una breve historia de la computación.

La generación 0: elementos mecánicos y eléctricos.

Hasta poco antes de la segunda guerra mundial, los aparatos de


computación eran mecánicos y eléctricos. El primer dispositivo de
computación (entendiendo computación en su acepción de cálculo”) fue el
“reloj calculador” de Wilhelm Schickar, de 1623. Pascal inventó un aparato
que permitía sumar y restar en 1642, y trató de patentarlo. El invento era
poco práctico y costoso y no fue un éxito.
Wilhelm von Leibniz inventó a fines del siglo XVII un aparato que podía
multiplicar por sumas repetidas. Nuevamente, la tecnología de la época no
permitió llevar a la práctica la invención, aunque las ideas eran básicamente
correctas.
En el siglo XIX Charles Babbage inventó una máquina para realizar
multiplicaciones y recibió incluso financiación del gobierno británico para
construirla. Nunca la terminó. Una amiga de él, Augusta Ada Byron (Ada
Lovelace), se interesó e incluso escribió un programa para esta máquina.
Ada Byron es considerada la primera programadora de la historia.
A fines del siglo XIX Herman Hollerith inventó un sistema de tarjetas
perforadas para un censo. Su invención fue comercializada por su incipiente
empresa, International Business Machines, conocida por sus iniciales, IBM.

La primera generación: la electrónica de tubos de vacío.

La revolución electrónica de los tubos de vacío y la guerra dieron un gran


empuje al desarrollo de las computadoras. Las computadoras de la llamada
primera generación eran verdaderos mamuts que ocupaban habitaciones
enteras y que pesaban varias toneladas. Fueron desarrolladas en el mayor
secreto con objetivos militares en los años 40. Entre los nombres de estas
computadoras prehistóricas, están ENIAC, EDVAC y EDSAC. Un progreso
constante tendía a la reducción de estas inmanejables máquinas. Esto hizo
que la revista Popular Mechanics lanzara su famoso vaticinio: “en el futuro,
las computadoras podrán pesar menos de cinco toneladas.”

La segunda generación: el transistor.

La introducción del transistor en 1948 hizo que el tamaño de las


computadoras decreciera sensiblemente. Kenneth Olsen fundó en 1957 la
empresa Digital Equipment Corporation (DEC) que introdujo las primeras
minicomputadoras del mercado (la serie PDP). Posteriormente IBM
introdujo también sus minicomputadoras.

Tercera generación: circuitos integrados de pequeña escala.


Este fugaz período incluye las máquinas IBM360 y PDP-11. Rápidamente
se avanzó a los circuitos VLSI (very large scale integration) que
permitieron el advenimiento de la cuarta generación.

Cuarta generación: VLSI.

En loa años 70 Intel introdujo los procesadores 4004, 8008 y 8068 y 8088.
Motorola introdujo su serie 6800 y posteriormente 68000. La elección de
IBM de Intel como procesador para sus computadoras personales (1988)
decidió una batalla comercial a favor de esta compañía.

Estructura interna de una computadora


Esta estructura fue propuesta por el matemático norteamericano Von Neumman en los años
40.

Dispositivos de
CPU Memoria entrada y salida

Bus

Sistemas de computadoras personales

Muchos de los componentes de una computadora se colocan sobre circuitos


impresos (placas con posiciones para colocar los chips —circuitos
integrados de silicio— y componentes electrónicos —bobinas, capacitores,
resistores, transistores.)
La parte principal del equipo que tenemos a la vista es el gabinete del
computador, mal llamado CPU, en el que encontramos entre otros
componentes, la “motherboard”, fuente de alimentacíon y algunos
dispositivos de entrada y salida, como por ejemplo discos de
almacenamiento secundario:discos rígidos, lectoras y/o lectograbadoras de
CD o DVD, discos flexibles y terminales de conexión para dispositivos
externos (monitores, teclados etc).
La “motherboard” o placa madre contiene la memoria principal, los
controladores de los dispositivos de entrada y salida (E/S o del ingles I/O) y
la Unidad Central de Proceso (CPU del ingles), entre otros.

La CPU es la unidad central e procesamiento. Es la parte de la computadora


donde se efectúan los cálculos. La CPU está contenida en el
microprocesador, un chip de silicio.
La memoria puede ser RAM —random-access memory, o memoria de
lectura-escritura— o ROM —read-only memory, memoria de sólo lectura.
La memoria RAM es la memoria de trabajo de la computadora. Pueden
escribirse, leerse y borrarse datos de la RAM. Un problema de la RAM es
que necesita alimentación eléctrica para mantener los datos. Si se apaga la
computadora o se corta el suministro eléctrico, todos los datos de la RAM
se pierden, a menos que se los haya guardado previamente en disco. La
ROM contiene datos que no pueden ser modificados ni borrados. Sólo
pueden ser leídos.
La unidad de disco (a veces “disco duro” o “disco rígido”) es el dispositivo
que lee y escribe datos sobre un disco rígido. Incluye el controlador del
disco.
Las interfaces pueden ser la tarjeta de red (que conecta la computadora a
una red) o las interfaces a los diferentes periféricos (teclado, monitor,
mouse, impresoras.) Otros periféricos que suelen estar incluidos en la
unidad de sistema son la unidad de disquete (que permite grabar y leer datos
en un disquete) y la unidad de CD, que permite leer datos de un CD-ROM.
También hay unidades grabadoras de CD. Otras interfaces se pueden
agregar en los llamados slots (ranuras) de expansión. Allí pueden insertarse
otras unidades como CD o discos adicionales.
El bus es un conjunto de conductores a través de los cuales se transmiten
datos entre los diferentes componentes de la computadora.
Un importante componente es la fuente, que convierte la tensión de línea
(220V o 110V de tensión alterna según el país) en la tensión continua que
necesita la computadora.

Otros Componentes

Las tarjetas de vídeo y de sonido le permiten a la computadora manejar el


monitor y sonidos. Pueden ser rudimentarias o tener capacidades
profesionales. El puerto paralelo es una interfaz capaz que puede transferir
más de un bit simultáneamente y se utiliza para conectarse a otros
periféricos como computadoras. El puerto serial es una interfaz que permite
transferir sólo de un bit por vez.
La información está continuamente fluyendo a través de la computadora en
la forma de impulsos eléctricos. Prácticamente todo este flujo de
información pasa por el bus. La información de la computadora es digital (o
sea, se basa en dos valores.) ¿Por qué? Porque hay menos posibilidad de
error reconociendo sólo dos estados (alto y bajo, o 1 y 0) que tratando de
reconocer un rango continuo de valores, que pueden ser distorsionados por
el “ruido eléctrico.” Hace falta una gran distorsión para confundir un 1 con
un 0. En cambio, una pequeña distorsión basta para confundir un 1,1 con un
1,2.
Entre la información que circula, se puede mencionar:
Instrucciones de boot, almacenadas en ROM; aplicaciones de software que
se cargan en la RAM; los constantes diálogos de las memorias con la CPU a
través del bus; información de las aplicaciones que se almacenan en la
RAM; información almacenada, que pasa de la RAM al disco rígido;
información exportada (por ejemplo a una impresora); y una infinidad de
otros tipos de información.

Componentes de la CPU
Registros
Unidad de Control
Unidad Artimético-Lógica (ALU)
La CPU es la encargada de procesar los los datos que se encuentran en la
memoria principal de la computadora, lo hacen a travez de programas que,
como los datos se encuentran el la memoria principal. Para poder ejecutar
estos programas se deben llevar las ordenes a la CPU.
Los registros son memorias de altísima velocidad que reciben de la
memoria principal operaciones y datos.
La unidad de control decodifica las operaciones (códigos de
operación), y dispara los procesos internos necesarios para llevarla a cabo.
La unidad aritmético-lógica es la que lleva a cabo las operaciones
elementales de suma y comparación.

La máquina de von Neumann

CPU

datos datos +
instrucciones

Memoria

La computadora realiza repetidamente el siguiente ciclo de eventos


1. recoger una instrucción de la memoria.
2. recoger los datos requeridos para ejecutar la instrucción de la
memoria.
3. ejecutar la instrucción (procesar los datos.)
4. almacenar los resultados en la memoria.
5. volver al paso 1.
Un programa es un conjunto ordenado de operaciones que una computadora
debe ejecutar. En la computadora moderna (esquematizada por von
Neumann en 1945) el programa contiene una secuencia de instrucciones
que la computadora ejecuta de a una. Un programa se almacena en un área
de accesible (típicamente la RAM.) La computadora toma una instrucción,
la ejecuta, y pasa a buscar la siguiente instrucción. El área de
almacenamiento en la que se encuentra al programa contiene también los
datos sobre los cuales operan las instrucciones (note que un programa es un
conjunto especial de datos con instrucciones sobre cómo operar sobre otros
datos.)

Las operaciones que reconoce la CPU por medio de la Unidad de Control,


son un conjunto acotado de códigos numéricos que se denominan Set de
Instrucciones. Los distintos microprocesadores reconocen sus propios
códigos.

Existen dos grandes grupos de arquitecturas de microprocesadores


RISC procesadores con un Set de Instrucciones Reducido
CISC procesadores con un Set de Instrucciones Complejo
En los primeros la unidad de control es pequeña ya que no necesita
interpretar gran cantidad de códigos de máquina, y estos últimos tienen
todos el mismo tiempo de ejecución. Compensando esta reducción los
procesadores RISC tienen una cantidad muy grande de registros lo que hace
que el conjunto de instrucciones se ejecute mucho mas rápido.
Por otra parte las máquinas CISC tiene una gran Unidad de Control que
permite interpretar el extenso conjunto de operaciones. Estas operaciones
pueden llegar a ser muy complejas y requerir un tiempo de ejecución
bastante largo.

Esquema conceptual en capas de una computadora moderna:


1. Nivel Electrónico: Compuesto por los elementos electrónicos,
cables, resistencias, transistores, capacitares etc.
2. Nivel de Lógica Digital: Dispositivos electrónicos que resuelven las
operaciones elementales, dispositivos del almacenamiento
(memorias, registros), sumadores, decodificadores etc.
3. Nivel de Microprogramación: conjunto de microprogramas que
interpretan los códigos de operación en la unidad de control.
4. Nivel de Maquina Convencional: Representada por el set de
instrucciones y todos los dispositivos controladores de E/S (discos,
monitores, etc)
5. Nivel de Sistema Operativo: Primer programa que se ejecuta en el
computador que permite hacerlo operativo. Brinda una interfaz
amigable al operador para acceder a la complejidad subyacente.
6. Nivel de Lenguaje Ensamblador: Lenguaje de programación de bajo
nivel, cercano al código de máquina,
7. Nivel de Aplicaciones de Usuario
Proceso para la obtención de un programa ejecutable

El único lenguaje que entiende el computador (sus circuitos) es el lenguaje


de máquina
Cuando se crea un programa, se comienza escribiéndolo en algún de
lenguaje de programación. Las sentencias del lenguaje constituyen el
“programa fuente.”
Este deben ser traducidos o interpretados para que sean comprendidos por
la máquina.
La interpretación consiste en convertir sentencia por sentencia el programa
en alto nivel a lenguaje de máquina y ejecutarlo en forma inmediata, este
mecanismo requiere disponer del programa fuente (lenguaje de alto nivel)
haciendo la ejecución mas lenta.
La compilación requiere dos pasos, la compilación y el enlazado. El
primero convierte todo el programa fuente en lenguaje de máquina, con
excepción de algunas operaciones que no se desarrollan en el programa
fuente y se encuentran almacenadas en bibliotecas de funciones, las que se
incluirán en el programa ejecutable durante el segundo paso, el enlazado.
Existen dos formas de enlazado, estática y dinámica. La estática incorpora
las bibliotecas en el ejecutable el una operación de enlazado. En cuanto a la
dinámica lo hace durante la ejecución del programa, en este caso las
bibliotecas deben estar disponibles para el sistema operativo. Para ejecutar
un programa compilado solo se requiere el ejecutable y eventualmente las
bibliotecas, no hace falta disponer del fuente.

Bibliotecas

En general, una biblioteca (llamada comúnmente “librería” como


consecuencia de una mala traducción de la palabra inglesa “library”) es una
colección de objetos similares almacenados para uso ocasional. El término
se aplica por ejemplo a programas en código fuente u objeto, archivos de
datos, plantillas, fuentes y unidades de almacenamiento como cintas.
Una biblioteca de programas esté usualmente compilada. Consta de
programas que pueden ser utilizados como rutinas que un programador
puede “llamar” cuando está escribiendo código de manera que no necesite
escribirlas (o reescribirlas si el programador es el autor del código de la
biblioteca.) Un tipo especial de bibliotecas de programas es la biblioteca de
vínculos dinámicos (habitualmente llamada DLL, “dynamic link library.”)
A otro tipo de biblioteca es la biblioteca de clases en programación
orientada a objetos. Los componentes de las interfaces gráficas de usuario
(GUI, graphical user interface) son también bibliotecas cuyos componentes
son barras de desplazamiento, ventanas, botones y otros componentes.

DLL
Las DLL son colecciones de pequeños programas que pueden ser llamados
individualmente cuando un programa mayor que está ejecutándose los
necesita. Los programas que permiten que el programa principal se
comunique con otros dispositivos como impresoras o scanners están a
menudo empaquetados como DLL. Estas DLL se conocen como “drivers”
de los dispositivos.
La ventaja de las DLL reside en que no son cargadas en la memoria
principal (RAM) junto con el programa principal. Por lo tanto, se ahorra
espacio en la RAM. Las DLL sólo se cargan si se las llama desde algún
programa. Por ejemplo, mientras un usuario de Word está editando un
documento, la DLL de impresión no se carga. Si el usuario decide imprimir
el documento, entonces se carga y ejecuta esta DLL.
Los archivos DLL tienen usualmente la extensión “.dll”. Estas bibliotecas
están dinámicamente vinculadas al programa durante su ejecución más que
durante la compilación.

Bits y Bytes

Bit es una abreviatura de binary digit (John Tukey, 1946) —la menor
cantidad de información del sistema digital. Un bit se representa por los
números 1 y 0, que corresponden a los estados on y off, verdadero y falso,
sí o no. Bits son el átomo de todo el procesamiento de información de las
computadoras. El término fue introducido por John Tukey, un estadístico
norteamericano en 1946. an American statistician and early computer
scientist. Los bits se combinan usualmente en unidades mayores llamadas
bytes.
Byte, es, como se dijo arriba, una unidad de información compuesta por
bits. Un byte (llamado a veces también octeto) tiene 8 bits. Los valores de
un byte van de 0 decimal (00000000) a 255 decimal (11111111). Esto
significa que un byte puede tomar 28 estados posibles. Los bytes se agrupan
a su vez en conjuntos de 1 a 8 bytes llamados palabras. El tamaño de las
palabras depende de la capacidad de procesamiento de la CPU. Un
procesador de 32 bits, por ejemplo, utiliza palabras de hasta cuatro bytes. El
término fue introducido por Werner Buchholz, que describió al byte como
el grupo de bits necesarios para codificar un carácter, en 1956. El byte se
convirtió rápidamente en un estándar.
Las computadoras se clasifican a veces por el número de bits que pueden
procesar simultáneamente, así como por el número de bits que utilizan para
direccionar en la memoria principal (RAM). Los gráficos se describen por
el número de bits utilizados para representar pixels, la parte identificable
más pequeña de una imagen. En imágenes de 256 colores o de escalas de
gris, cada pixel consiste de un byte. En imágenes de mayor fidelidad (true
color), cada pixel consiste por lo menos de 24 bits. En imágenes
monocromáticas, cada pixel consiste de un bit.
Un byte representa típicamente un carácter (por ejemplo, una letra o un
número.) Toda la información significativa que manipula una computadora
aparece en última instancia en la forma de bits.
Los bytes son la principal unidad para medir cantidades de datos o
capacidades de almacenamiento. Usualmente se utilizan kilobytes (KB,
210=1024 bytes) megabytes (MB, 220=1048576 bytes), gigabytes (GB,
230=1073741824 bytes) y terabytes (TB, 240=1099511627776 bytes.) Un
disquete común almacena alrededor de 1,44 MB. Un CD alrededor de 700
MB.
la cantidad de bits que la CPU de una computadora utiliza para direccionar
información da una medida de la velocidad y capacidad de la computadora.
Las computadoras actuales utilizan 16, 32 y 64 bits en grupos de 1, 2, 4, 8
bytes o mas multiplos de Byte.
En computación, digital es sinónimo de binario debido a que las
computadoras usualmente codifican información como bits. Un bit puede
representar a lo sumo dos valores. Dos bits, cuatro valores. Ocho bits,
doscientos cincuenta y seis valores y así sucesivamente. Se pueden utilizar
valores digitales para representar valores que varían continuamente (es lo
que se hace en las grabaciones digitales de música.) Cuando un valor cae en
el medio de dos valores digitales, se toma el mayor o el menor.

Sistemas Operativos

Un Sistema Operativo es un programa maestro de control que actúa


como interfaz entre el usuario y el hardware. Es un planificador de tareas y
un “agente de tránsito” de aplicaciones. Es el primer programa que se carga
(copia) en la memoria de la computadora después de que ésta sea encendida
y el núcleo central (kernel) del mismo debe estar siempre residente en
memoria. El sistema operativo puede ser desarrollado por el fabricante del
hardware sobre el que corre o por una compañía independiente (como en la
mayoría de los casos del entorno PC).
El sistema operativo es un componente importante en un sistema
informático, ya que determina los estándares para los programas de
aplicación que se ejecutarán allí. Todos los programas deben ser escritos
para “hablar” con el sistema operativo y no con el hardware, ya que el
sistema operativo representa una máquina virtual, para las aplicaciones.
El sistema operativo desarrolla las siguientes tareas:

Administración de trabajos: En computadoras pequeñas, el sistema


operativo responde a los comandos del usuario y carga en memoria
los programas de aplicación requeridos para su ejecución.

Administración de Procesos: En computadoras monotarea, el


sistema operativo no tiene virtualmente ninguna tarea que realizar,
pero en computadoras multitarea es responsable de la operación
simultánea de uno o más programas (trabajos). Los sistemas
operativos avanzados poseen la habilidad de asignar prioridades a
los programas de modo tal que se ejecute un trabajo antes que otro.

Administración de Memoria: Los procesos que se ejecutan el


computador deben forzaozamente residir en menoría, la asgnacion
de espacios de memoria a procesos, su reubicación y optimización.
Los sistemas operativos modernos utilizan la memoria secundaria
(disco) para simular memoria real, esta técnica se denomina
Memoria Virtual.

Administración de dispositivos de entrada y salida: En teoría, el


sistema operativo debe ser capaz de administrar todos los
dispositivos, no solamente los controladores de disco. Se supone que
puede manejar las entradas y las salidas a la pantalla, así como a la
impresora. Manteniendo los detalles del dispositivo periférico dentro
del sistema operativo, el dispositivo puede ser reemplazado por uno
más moderno, y sólo debe cambiarse en el sistema operativo la
rutina que se encarga de este dispositivo.

Administración de archivos: Una de las funciones principales de un


sistema operativo es la de llevar la cuenta de los datos en el disco (o
cualquier otro sistema de almacenamiento). De aquí la
denominación DOS (disk operating system – sistema operativo de
disco). Sea Windows, Linux o UNIX, a todos los sistemas
operativos basados en datos almacenados en disco se los puede
denominar DOS; no obstante, la popularización del primer sistema
operativo de Microsoft (MS-DOS) hizo propia esta denominación.
Los programas de aplicación no saben dónde se encuentran
almacenados los datos o cómo obtenerlos. Estos conocimientos
están contenidos en las rutinas de métodos de acceso del sistema
operativo o controladores (drivers) de dispositivos. Cuando un
programa está listo para aceptar datos, le pasa una señal al sistema
operativo mediante un mensaje codificado. El sistema operativo
busca el dato y lo entrega al programa. A la inversa, cuando el
programa está listo para emitir datos, el sistema operativo transfiere
estos datos del programa al espacio disponible en el disco. Ejemplos
de manejo de archivos son los sistemas FAT (File alocation table) en
MSDOS y los i-nodo en UNIX.

Seguridad: Los sistemas operativos multiusuario mantienen una


lista de los usuarios autorizados y proveen protección de claves de
acceso (passwords) contra los usuarios no autorizados que pueden
intentar introducirse en el sistema. Los sistemas operativos más
potentes mantienen asimismo registro de actividad del sistema,
restricción de acceso a archivos y contabilidad del tiempo del
usuario en el sistema. También proveen rutinas de respaldo y
recuperación para comenzar nuevamente en el caso de un fallo del
sistema.

Adminaistración de redes: area de administración encargada de la


comunicación entre computadoras. Puede considerarse como un
subsistema de entradas/salidas. Según las capacidades y objetivos
del SO pueden unos pocos programas que o grandes sistemas
operativos especializados en el manejo de redes.

Historia: Los primeros sistemas operativos fueron desarrollados a


fines de los años cincuenta para administrar el almacenamiento en
cinta y disco, pero los programadores a menudo se sentían más
cómodos escribiendo y utilizando sus propias rutinas de I/O
(input/output – entrada/salida), lo que complicaba la portabilidad de
los programas hacia otros entornos. A mediados de los sesenta, los
sistemas operativos se hicieron indispensables para arreglárselas con
las complejidades del tiempo compartido y las multitareas. En la
actualidad, todas las computadoras utilizan un sistema operativo.

Sistemas operativos comunes: DOS, Windows, OS/2, UNIX (en


todas sus variantes: SCO, HP/UX, AIX, XENIX, Linux), QNX,
MacOS,
Sistemas de Numeración posicional

Conocemos el sistema de representación numérica decimal de


manera casi natural, sabemos que se compone de 10 digitos, del cero
al 9.
Existen otras formas de representar los numeros con el mismo
criterio que uamos para los decimales, donde cada digito del número
representa un valor distinto según la posición del digito en el
número.
Los Númerso decimales se forman a partir de diez digitos, del 0 al 9
cada digito representa su valor propio multiplicado por 10 elevado a
su pocicion, siendo 0 la posicion del digito entero ams significativo.

Posición 5 4 3 2 1 0
Dígito 5 1 2 9
Peso del dígito 105 104 103 102 101 100

Resultando

0x105 + 0x104 + 5x103 + 1x102 + 2x101 + 9x100 = 5129(10)

Donde el subindice (10) representa la base de numeración

Se pueden representar los vlores numéricos en cualqueir base, por


ejemplo base 8
donde los digitos que corresponden a dicha base van del 0 al 7

En este caso tambien el valor decimal 5129 lo podemos representar


en base 8.
a tal fin utilizaremos el método de divisiones sucesivas.

5129 % 8
641 1
80 1 12011(8)
10 0
1 2
1

A fin de reconstruír el valor exresado en base 10 aplicamos a cada


digito su valor relativo a su posición.

1x84 +2x83 + 0x82 + 1x81 + 1x80


4096 + 1024 + 0 + 8 + 1 = 5129(10)
Tabla de conversion de bases
Base 10 16 8 4 2

0 0 0 0 0
1 1 1 1 1
2 2 2 2 10
3 3 3 3 11
4 4 4 10 100
5 5 5 11 101
6 6 6 12 110
7 7 7 13 111
8 8 10 20 1000
9 9 11 21 1001
10 A 12 22 1010
11 B 13 23 1011
12 C 14 30 1100
13 D 15 31 1101
14 E 16 32 1110
15 F 17 33 1111
16 10 20 40 10000
17 11 21 41 10001

Todos los valores almacenados en el computador, cualqueiera sea su


maturaleza original, deben ser almacenados en formato binario, es
decir, numeración en base 2, como fuera explicado en acapites
anteriores. En general se almacenan en bloques multipols de byte es
decir ocho bit. La forma de almacenamiento es una convención con
lo cual para almacenar alguna entidad, se pueden encontrar una
variedad de modos, pero en ultima instancia la mayor parte de los
datos básicos de la misma forma en la mayoría de los sistemas de
computo.

Almacenamiento de enteros sin signo en el computador


En 1Byte Valores entre 0 y 255 (28 valores)
2Bytes 216 valores
4Bytes 232 valores
etc.

Almacenamiento de enteros con signo


Se almacenan en formato complemento a 2, donde en los números
positivos el digito mas significativo es 0 y la repesentación del valor
absoluto es igual a la representacion sin signo. Los núneros
negativos tienen un 1 en el bit mas significativo y su valor absoluto
es el complemento a 2 del valor absoluto.

Ej Almacenamiento en 1 Byte
Nro 105(10) 01101001(2)

El complento a 2 es un valor tal que sumado al valor positivo da


como resultado cero. Se debe observar que esta forma de almacenamiento
requiere de un espacio de almacenamiento fijo.

Positivo original 01101001


Invertir original 10010110
Sumarle 1 10010111 ( -105(10) )

105 01101001
+ -105 + 10010111
000 x 0000000 donde x es el dígito que no cabe en la
representación