View
217
Download
0
Category
Preview:
Citation preview
• Programación C++ Esp.Alexis Olvany Torres Ch
• Con una máquina abstracta se define el ámbito de ejecución de los
programas
– Recursos necesarios para ejecutar un programa
• Organización de la memoria
– Segmento de código
– Segmento de datos estático
– Pila
– Heap (memoria dinámica)
• Registros del procesador
– Contador del programa
– Apuntador a la pila
– Acumulador
– Instrucción del código máquina
– Control de flujo
– Operaciones aritméticas
– Comparaciones
– Guardar y recuperar datos de memoria
Compiladores I (96-97 01/03/2010 18:38) - 6.3 -
Máquina abstracta
Tiempo de Ejecución
Programa
objeto
Máquina real
Datos de
entrada
Datos de
salida
Datos de
entrada
Datos de
salida
Programa
fuente
Datos de
entrada
Datos de
salida
Programa
objeto
Descripción abstracta del comportamiento de un programa
Descripción del comportamiento de un programa
independiente de máquina pero fácil de implementar
(implementación interpretada)
Descripción del comportamiento de un programa
dependiente de máquina (implementación)
• Programación C++ Esp.Alexis Olvany Torres Ch
Máquina Abstracta
Es una maquina que existe solamente en nuestra mente o en papel. Esta
definida como un conjunto de especificaciones que describen los comandos
que la maquina obedece y lo que esta hace en respuesta a cada comando.
Estas especificaciones también definen el conjunto de datos que la máquina
acepta como entrada, y la clase de salidas que proporciona.
Una máquina abstracta se usa cuando queremos decir lo que una máquina
hace, sin mencionar absolutamente nada sobre la forma en que esta
construida. Podemos imaginarnos una máquina abstracta como una Caja
Negra, en la cual entran comandos y datos y desde la cual se puede obtener
datos de salida. En particular una máquina abstracta puede se implementada
bien sea por medio de Hardware solamente, o por una combinación de
hardware y software.
Máquina Física
Cuando una máquina abstracta es implementada en harware, sin la ayuda del
software alguno, el resultado se llama máquina física. Un computador sin
ningún tipo de software , es una máquina física.
Máquina Virtual
Cuando una máquina abstracta es implantada mediante la ejecución de un
programa en un hardware dado, el resultado se denomina máquina virtual.
Multiniveles de Maquinas
La máquina sobre la cual se implanta una máquina virtual, la máquina
subyacente, puede ser perfectamente otra maquina virtual, implementada
mediante la ejecución de un programa en otra máquina subyacente, la cual a
su vez puede ser una máquina virtual , y así sucesivamente. Es decir podemos
imaginarnos una máquina complicada como una máquina estructurada en un
número de niveles.
• Programación C++ Esp.Alexis Olvany Torres Ch
Un ejemplo concreto se presenta en la figura 1 la cual muestra la estructura de
niveles de un sistema de computación moderno.
Programas de aplicación
Software escrito por el usuario
Lenguajes de programación
Software del sistema
Sistemas operativos
Software del sistema
Lenguaje Maquina
Firmware ( microprograma)
Maquina Microprogramada Hardware (Maquina física )
Figura 1
Los sistemas operativos y procesadores de lenguajes, implantan máquinas
virtuales que sirven de "interface" a los usuarios del computador, sus funciones
básicas pueden ser definidas como funciones de traducción. Estas máquinas
virtuales sucesivamente convierten máquinas a niveles más altos, en sus
equivalentes a niveles mas bajos, hasta que, eventualmente, se llega al
computador real (máquina física).
Ningún programa puede hacer tarea alguna sin una máquina subyacente (física
o virtual) que lleve a cabo sus instrucciones. Los sistemas operativos y
procesadores de lenguajes son esencialmente traductores, desde el punto de
vista del usuario. En base a esto, la tarea mas importante de cualquier sistema
es la de asistir a los usuarios del computador, en la solución de sus problemas.
Podemos imaginarnos que cualquier programa que se ejecute en un
computador es una definición de una máquina virtual. Los programas aceptan
comandos y datos, cada comando lleva a cabo diferentes tipos de operaciones.
• Programación C++ Esp.Alexis Olvany Torres Ch
Existen dos tipos de comandos que se pueden dar a una máquina cualquiera:
1. Comandos inmediatos. Llevados a cabo inmediatamente que son
recibidos por la máquina, y cuyos resultados aparecen tan pronto como
la máquina los obtiene.
2. Comandos de programa: son almacenados en forma de secuencia de
comandos, a la cual se le llama programa. El programa completo es
ejecutado, luego de haber sido recibido, en respuesta a un comando
inmediato como Ejecute.
El conjunto de comandos de una máquina dada, forma un lenguaje de
programación. Un Programa se escribe en un Lenguaje de programación. Los
lenguajes utilizados para escribir programas de computadoras son los
lenguajes de programación y programadores son los escritores.
Conceptos básicos y terminología
Software: consiste en los programas de instrucciones (datos), que definen
para el hardware los algoritmos necesarios para la solución de problemas.
Cuando un usuario se enfrenta a un computador lo está haciendo realmente
con una maquina mucho mas compleja que la maquina física subyacente. Esta
otra máquina la conforman los programas del sistema, hechos especialmente
para hacer la comunicación hombre-máquina mas económica, facilitando así al
usuario un uso mas eficiente del sistema.
Cada vez que se ejecuta un programa en el PC, el comportamiento de este
último varía presentándose como otra máquina, que puede proporcionar
funciones y facilidades muy diferentes.
Por lo tanto es conveniente acostumbrarnos a la idea de hablar de una
máquina sin preocuparnos cómo esta construida.
• Programación C++ Esp.Alexis Olvany Torres Ch
Lenguajes de programación
Un lenguaje de programación es un sistema rotacional para describir
operaciones con computadores. Los lenguajes que favorecen a los seres
humanos se llaman de alto nivel, y aquellos orientados a la máquina, de bajo
nivel. En este sentido existen varios tipos de lenguajes de programación:
Lenguaje de máquina, ensambladores y de alto nivel.
Programa Interpretador
El intérprete es un traductor que toma un programa fuente, lo traduce y a
continuación lo ejecuta. Es una máquina virtual en forma de programa,
aceptando como entrada los comandos inmediatos para esta maquina
abstracta. El interpretador acepta el programa y los datos a ser procesados. La
salida es el resultado de procesar los datos por el programa interpretado.
Programa Traductor (Compiladores)
Un compilador es un programa que traduce los programas fuentes escritos en
lenguajes de alto nivel, a lenguaje máquina. El traductor convierte un programa
escrito en el lenguaje de una máquina abstracta en otro programa equivalente
escrito en el lenguaje de máquina subyacente, en la cual se implanta aquélla.
Sistema de Información
Introducción:
Un sistema de información es un conjunto de elementos que interactúan entre
sí con el fin de apoyar las actividades de una empresa o negocio.
El equipo computacional: el hardware necesario para que el sistema de
información pueda operar.
• Programación C++ Esp.Alexis Olvany Torres Ch
El recurso humano que interactúa con el Sistema de Información, el cual está
formado por las personas que utilizan el sistema.
Un sistema de información realiza cuatro actividades básicas:
Entrada, almacenamiento, procesamiento y salida de información.
Entrada de Información: Es el proceso mediante el cual el Sistema de
Información toma los datos que requiere para procesar la información. Las
entradas pueden ser manuales o automáticas. Las manuales son aquellas que
se proporcionan en forma directa por el usuario, mientras que las automáticas
son datos o información que provienen o son tomados de otros sistemas o
módulos. Esto último se denomina interfaces automáticas.
Las unidades típicas de entrada de datos a las computadoras son las
terminales, las cintas magnéticas, las unidades de diskette, los códigos de
barras, los escáners, la voz, los monitores sensibles al tacto, el teclado y el
mouse, entre otras.
Almacenamiento de información: El almacenamiento es una de las
actividades o capacidades más importantes que tiene una computadora, ya que
a través de esta propiedad el sistema puede recordar la información guardada
en la sección o proceso anterior. Esta información suele ser almacenada en
estructuras de información denominadas archivos. La unidad típica de
almacenamiento son los discos magnéticos o discos duros, los discos flexibles
o diskettes y los discos compactos (CD-ROM).
Procesamiento de Información: Es la capacidad del Sistema de Información
para efectuar cálculos de acuerdo con una secuencia de operaciones
preestablecida. Estos cálculos pueden efectuarse con datos introducidos
recientemente en el sistema o bien con datos que están almacenados. Esta
característica de los sistemas permite la transformación de datos fuente en
información que puede ser utilizada para la toma de decisiones, lo que hace
posible, entre otras cosas, que un tomador de decisiones genere una
proyección financiera a partir de los datos que contiene un estado de
resultados o un balance general de un año base.
• Programación C++ Esp.Alexis Olvany Torres Ch
Salida de Información: La salida es la capacidad de un Sistema de
Información para sacar la información procesada o bien datos de entrada al
exterior. Las unidades típicas de salida son las impresoras, terminales,
diskettes, cintas magnéticas, la voz, los graficadores y los plotters, entre otros.
Es importante aclarar que la salida de un Sistema de Información puede
constituir la entrada a otro Sistema de Información o módulo. En este caso,
también existe una interfase automática de salida. Por ejemplo, el Sistema de
Control de Clientes tiene una interface automática de salida con el Sistema de
Contabilidad, ya que genera las pólizas contables de los movimientos
procesales de los clientes.
A continuación se muestran las diferentes actividades que puede realizar un
Sistema de Información de Control de Clientes:
Actividades que realiza un Sistema de Información:
Entradas:
Datos generales del cliente: nombre, dirección, tipo de cliente, etc.
Políticas de créditos: límite de crédito, plazo de pago, etc.
Facturas (interface automático).
Pagos, depuraciones, etc.
Proceso:
Cálculo de antigüedad de saldos.
Cálculo de intereses moratorios.
Cálculo del saldo de un cliente.
Almacenamiento:
Movimientos del mes (pagos, depuraciones).
Catálogo de clientes.
Facturas.
• Programación C++ Esp.Alexis Olvany Torres Ch
Salidas:
Reporte de pagos.
Estados de cuenta.
Pólizas contables (interfase automática)
Consultas de saldos en pantalla de una terminal.
SISTEMA OPERATIVO
Los sistemas operativos internos fueron desarrollados sobre todo para
coordinar y trasladar estos flujos de datos que procedían de fuentes distintas,
como las unidades de disco o los coprocesadores (chips de procesamiento que
ejecutan operaciones simultáneamente con la unidad central, aunque son
diferentes).
Un sistema operativo es un programa de control principal, almacenado de
forma permanente en la memoria, que interpreta los comandos del usuario que
solicita diversos tipos de servicios, como visualización, impresión o copia de un
archivo de datos; presenta una lista de todos los archivos existentes en un
directorio o ejecuta un determinado programa, es decir, administra todos los
recursos de la unidad computacional y facilita la comunicación con el usuario.
Además, cuenta con programas especializados para diversas tareas, como son
la puesta en marcha del equipo, la interpretación de comandos, el manejo de
entrada y salida de información a través de los periféricos, acceso a discos,
procesamiento de interrupciones, administración de memoria y procesador,
entre otros.
El sistema operativo establece las reglas y parámetros para que el software
aplicativo interactúe con la computadora, ya que en lugar de hablar
directamente con el hardware, las aplicaciones hablan con el sistema operativo
y este actúa como su intérprete. Si no existiera el sistema operativo, cada
empresa desarrolladora de software tendría que crear su propio método para
que las aplicaciones graben archivos en el disco duro, desplegar textos y
gráficos en la pantalla, enviar texto a la impresora e infinidad de funciones más.
• Programación C++ Esp.Alexis Olvany Torres Ch
Algunos sistemas operativos conocidos son Windows, con versiones 95, 98,
2000, Mileniun, NT, Vista, 2007, 2010 y superiores; DOS; Netware; Unix, Linux,
entre otros.
Software de aplicación
Es un conjunto de programas diferente al software del sistema, éstos se
encargan de manipular la información que el usuario necesita procesar, son
programas que desarrollan una tarea específica y cuya finalidad es permitirle al
usuario realizar su trabajo con facilidad, rapidez, agilidad y precisión.
LOS DISPOSITIVOS DE ENTRADA/SALIDA:
Son aquellos que permiten la comunicación entre la computadora y el usuario.
1. DISPOSITIVOS DE ENTRADA:
Son aquellos que sirven para introducir datos a la computadora para su
proceso. Los datos se leen de los dispositivos de entrada y se almacenan en la
memoria central o interna. Los dispositivos de entrada convierten la información
en señales eléctricas que se almacenan en la memoria central.
Los dispositivos de entrada típicos son los teclados, otros son: lápices ópticos,
palancas de mando (joystick), CD-ROM, discos compactos (CD), etc. Hoy en
día es muy frecuente que el usuario utilice un dispositivo de entrada llamado
ratón que mueve un puntero electrónico sobre una pantalla que facilita la
interacción usuario-máquina.
• Programación C++ Esp.Alexis Olvany Torres Ch
DISPOSITIVOS DE SALIDA:
Son los que permiten representar los resultados (salida) del proceso de datos.
El dispositivo de salida típico es la pantalla o monitor. Otros dispositivos de
salida son: impresoras (imprimen resultados en papel), trazadores gráficos
(plotters), bocinas, entre otros...
CPU
La unidad central de procesamiento, CPU (por sus siglas del inglés Central
Processor Unit), o, simplemente, el procesador. Es el componente en una
computadora digital que interpreta las instrucciones y procesa los datos
contenidos en los programas de computadora. Los CPU proporcionan la
característica fundamental de la computadora digital, la programabilidad, y son
uno de los componentes necesarios encontrados en las computadoras de
cualquier tiempo, junto con el almacenamiento primario y los dispositivos de
entrada/salida. Se conoce como microprocesador el CPU que es
manufacturado con circuitos integrados. Desde mediados de los años 1970, los
microprocesadores de un solo chip han reemplazado casi totalmente todos los
tipos de CPU, y hoy en día, el término "CPU" es aplicado usualmente a todos
los microprocesadores.
UC, Unidad de control,
La Unidad de control es el "cerebro del microprocesador". Es la encargada de
activar o desactivar los diversos componentes del microprocesador en función
de la instrucción que el microprocesador esté ejecutando y en función también
de la etapa de dicha instrucción que se esté ejecutando.
La unidad de control (UC) interpreta y ejecuta las instrucciones almacenadas
• Programación C++ Esp.Alexis Olvany Torres Ch
en la memoria principal y genera las señales de control necesarias para
ejecutarlas.
Existen dos tipos de unidades de control, las cableadas, usadas generalmente
en máquinas sencillas, y las microprogramadas, propias de máquinas más
complejas. En el primer caso, los componentes principales son el circuito de
lógica secuencial, el de control de estado, el de lógica combinacional, y el de
emisión de reconocimiento señales de control. En el segundo caso, la
microprogramación se encuentra almacenada en una micromemoria (se
accede a las mismas de manera secuencial (1, 2, ..., n), y posteriormente se
ejecuta cada una de ellas).
Unidad Logica aritmetica
La Unidad Aritmético Lógica (UAL), o Arithmetic Logic Unit (ALU), es un circuito
digital que calcula operaciones aritméticas (como adición, substracción, etc.) y
operaciones lógicas (como OR, NOT, XOR, etc.), entre dos números.
Muchos tipos de circuitos electrónicos necesitan realizar algún tipo de
operación aritmética, así que incluso el circuito dentro de un reloj digital tendrá
una ALU minúscula que se mantiene sumando 1 al tiempo actual, y se
mantiene comprobando si debe activar el pitido del temporizador, etc...
Por mucho, los más complejos circuitos electrónicos son los que están
construidos dentro de los chips de microprocesadores modernos como el
Pentium. Por lo tanto, estos procesadores tienen dentro de ellos un ALU muy
complejo y poderoso. De hecho, un microprocesador moderno (y los
mainframes) pueden tener múltiples núcleos, cada núcleo con múltiples
unidades de ejecución, cada una de ellas con múltiples ALU.
Memoria,
• Programación C++ Esp.Alexis Olvany Torres Ch
El propósito del almacenamiento es guardar datos que la computadora no esté
usando. El almacenamiento tiene tres ventajas sobre la memoria:
1. Hay más espacio en almacenamiento que en memoria.
2. El almacenamiento retiene su contenido cuando se apaga el computador
3. El almacenamiento es más barato que la memoria.
El medio de almacenamiento más común es el dispositivo Usb. El dispositivo
que contiene al disco se llama unidad de disco (drive). La mayoría de las
computadoras personales tienen un disco duro no removible. Además
usualmente hay una o dos unidades de dispositivo Usb. El disco duro
normalmente puede guardar muchos más datos que un dispositivo Usb y por
eso se usa disco duro como el archivero principal de la computadora. Los
dispositivo Usb se usan para cargar programas nuevos, o datos al disco duro,
intercambiar datos con otros usuarios o hacer una copia de respaldo de los
datos que están en el disco duro.
Una computadora puede leer y escribir información en un disco duro mucho
más rápido que en el dispositivo Usb. La diferencia de velocidad se debe a que
un disco duro está construido con materiales más pesados, gira mucho más
rápido que un disco flexible y está sellado dentro de una cámara de aire, las
partículas de polvo no pueden entrar en contacto con las cabezas.
La memorización consiste en la capacidad de registrar sea una cadena de
caracteres o de instrucciones (programa) y tanto volver a incorporarlo en
determinado proceso como ejecutarlo bajo ciertas circunstancias.
El computador dispone de varios dispositivos de memorización:
La memoria ROM
La memoria RAM
• Programación C++ Esp.Alexis Olvany Torres Ch
Las memorias externas. Un aspecto importante de la memorización es la
capacidad de hacer ese registro en medios permanentes, básicamente
los llamados "archivos" grabados en disco.
El acumulador
La principal memoria externa es el llamado "disco duro", que está conformado
por un aparato independiente, que contiene un conjunto de placas de plástico
magnetizado apto para registrar la "grabación" de los datos que constituyen los
"archivos" y sistemas de programas. Ese conjunto de discos gira a gran
velocidad impulsado por un motor, y es recorrido también en forma muy veloz
por un conjunto de brazos que "leen" sus registros. También contiene un
circuito electrónico propio, que recepciona y graba, como también lee y dirige
hacia otros componentes del computador la información registrada.
Indudablemente, la memoria externa contenida en el disco duro es la principal
fuente del material de información (data) utilizado para la operación del
computador, pues es en él que se registran el sistema de programas que dirige
su funcionamiento general (sistema operativo), los programas que se utilizan
para diversas formas de uso (programas de utilidad) y los elementos que se
producen mediante ellos (archivos de texto, bases de datos, etc.).
Unidades de Memoria
BIT: puede tener valore de 0 y 1, es decir sistema binario
BYTE: son 8 Bits.
KILOBYTE (KB) = 2 **10 bytes
MEGABYTE (MB) = 2 ** 10 Kilobyte = 2 ** 20 Bytes
GIGABYTE (GB) = 2** 10 Megabyte = 2** 30 Bytes
TERABYTE (TB) =2**10 Gigabyte = 2**40 Bytes
• Programación C++ Esp.Alexis Olvany Torres Ch
Es necesario aclarar que las unidades son infinitas, pero las antes nombradas
son las usadas.
BIT: su nombre se debe a la contracción de Binary Digit, es la mínima unidad
de información y puede ser un cero o un uno
BYTE: es la también conocida como el octeto, formada por ocho bits, que es la
unidad básica, las capacidades de almacenamiento en las computadoras se
organiza en potencias de dos, 16, 32, 64.
Las demás unidades son solo múltiplos de las anteriores, por ello cada una de
ellas están formadas por un determinado número de Bits.
Memoria de datos
Los datos que manejas los programas varían continuamente, y esto exige que
la memoria que los contiene debe ser de lectura y escritura, por lo que la
memoria RAM estática (SRAM) es la más adecuada, aunque sea volátil.
Hay microcontroladores que disponen como memoria de datos una de lectura y
escritura no volátil, del tipo EEPROM. De esta forma, un corte en el suministro
de la alimentación no ocasiona la pérdida de la información, que está
disponible al reiniciarse el programa. El PIC16F84 dispone de 64 bytes de
memoria EEPROM para contener datos. ( EEPROM: también se graba
eléctricamente, pero su borrado es mucho más sencillo, ya que también es
eléctrico. No se pueden conseguir grandes capacidades y su tiempo de de
escritura y su consumo es elevado.)
Sistemas numéricos
Los modernos equipos de cómputo actuales no utilizan el sistema decimal para
representar valores numéricos, en su lugar se hace uso del sistema binario,
• Programación C++ Esp.Alexis Olvany Torres Ch
también llamado complemento de dos. Es importante entender cómo
representan las computadoras los valores numéricos, en éste capítulo
analizaremos varios conceptos importantes incluyendo los sistemas binario y
hexadecimal, la organización binaria de datos (bits, nibbles, bytes, palabras y
palabras dobles), sistemas numéricos con signo y sin signo, operaciones
aritméticas, lógicas, de cambio (shift) y rotación en valores binarios, campos de
bits, empaquetado de datos y el juego de caracteres ASCII.
El sistema numérico decimal
Hemos utilizado el sistema decimal (de base 10) por tanto tiempo que
prácticamente lo tomamos como algo natural. Cuando vemos un número, por
ejemplo el 123, no pensamos en el valor en sí, en lugar de ésto hacemos una
representación mental de cuántos elementos representa éste valor. En
realidad, el número 123 representa:
1*102 + 2*101 + 3*100
ó lo que es lo mismo:
100 + 20 + 3
Cada dígito a la izquierda del punto decimal representa un valor entre cero y
nueve veces una potencia incrementada de diez. Los dígitos a la derecha del
punto decimal por su parte representan un valor entre cero y nueve veces una
potencia decrementada de diez. Por ejemplo, el número 123.456 representa:
1*102 + 2*101 + 3*100 + 4*10-1 + 5*10-2 + 6*10-3
El sistema numérico binario
Los sistemas de cómputo modernos trabajan utilizando la lógica binaria. Las
computadoras representan valores utilizando dos niveles de voltaje
(generalmente 0V. y 5V.), con éstos niveles podemos representar exáctamente
• Programación C++ Esp.Alexis Olvany Torres Ch
dos valores diferentes, por conveniencia utilizamos los valores cero y uno.
Éstos dos valores por coincidencia corresponden a los dígitos utilizados por el
sistema binario.
El sistema binario trabaja de forma similar al sistema decimal con dos
diferencias, en el sistema binario sólo está permitido el uso de los dígitos 0 y 1
(en lugar de 0~9) y en el sistema binario se utilizan potencias de 2 en lugar de
potencias de 10. De aquí tenemos que es muy fácil convertir un número binario
a decimal, por cada "1" en la cadena binaria, sume 2n donde "n" es la posición
del dígito binario a partir del punto decimal contando a partir de cero. Por
ejemplo, el valor binario 110010102 representa:
1*27 + 1*26 + 0*25 + 0*24 + 1*23 + 0*22 + 1*21 + 0*20
=
128 + 64 + 8 + 2
=
20210
Para convertir un número decimal en binario es un poco más difícil. Se requiere
encontrar aquellas potencias de 2 las cuales, sumadas, producen el resultado
decimal, una forma conveniente es trabajar en "reversa" por ejemplo, para
convertir el número 1359 a binario:
210=1024, 211=2048. Por tanto la mayor potencia de 2 menor que 1359
es 210. Restamos 1024 a 1359 y empezamos nuestro número binario
poniendo un "1" a la izquierda. El resultado decimal es 1359-1024=335.
El resultado binario hasta este punto es: 1.
La siguiente potencia de 2 en orden descendente es 29=512 lo que es
mayor que el resultado de la resta del punto anterior, por lo tanto
agregamos un 0 a nuestra cadena binaria, ahora es: 10. El resultado
decimal es aún 335.
• Programación C++ Esp.Alexis Olvany Torres Ch
La siguiente potencia es 28=256 por lo que lo restamos a 335 y
agregamos 1 a la cadena binaria: 101. El resultado decimal es: 79.
27=128, ésto es mayor que 79. Agregamos un 0 a la cadena binaria:
1010 en tanto que el valor decimal es: 79.
Restamos 26=64 a 79. La cadena binaria es ahora: 10101. El resultado
decimal indica: 15.
15 es menor que 25=32, por tanto, Binario=101010, el valor decimal
sigue siendo: 15.
15 es menor que 24=16, de aquí, Binario=1010100, el valor decimal
continúa en: 15.
23=8 es menor que 15, así que agregamos un 1 a la cadena binaria:
10101001, en tanto que el nuevo valor decimal es: 7.
22 es menor que 7. Binario es ahora: 101010011, el resultado decimal
ahora vale: 3.
21 es menor que 3. Binario=1010100111, el nuevo valor decimal es: 1.
Finalmente el resultado decimal es 1 lo que es igual a 20 por lo que
agregamos un 1 a la cadena binaria. Nuestro resultado indica que el
equivalente binario del número decimal 1359 es: 10101001111
Formatos binarios
En un sentido estricto, cada número binario contiene una cantidad infinita de
dígitos, también llamados bits que es una abreviatura de binary digits, por
• Programación C++ Esp.Alexis Olvany Torres Ch
ejemplo, podemos representar el número siete de las siguientes formas:
111
00000111
000000000000111
Por conveniencia ignoraremos cualquier cantidad de ceros a la izquierda, sin
embargo, como las instrucciones compatibles con los procesadores Intel 80x86
trabajan con grupos de ocho bits a veces es más fácil extender la cantidad de
ceros a la izquierda en un múltiplo de cuatro ú ocho bits, por ejemplo, el
número siete podemos representarlo así: 01112 ó 000001112. También es
conveniente separar en grupos de cuatro dígitos los número binarios grandes,
por ejemplo, el valor binario 1010111110110010 puede ser escrito así 1010
1111 1011 0010. Además, en una cadena binaria asignaremos al dígito de la
extrema derecha como el bit de posición cero y cada bit subsecuente se le
asignará el siguiente número sucesivo, de ésta manera un valor binario de
ocho bits utiliza los bits cero al siete:
X7 X6 X5 X4 X3 X2 X1 X0
Al bit cero se le conoce como el bit de bajo orden en tanto que al bit de la
extrema izquierda diferente de cero se le llama bit de alto orden.
El sistema numérico hexadecimal
Un gran problema con el sistema binario es la verbosidad. Para representar el
valor 20210 se requieren ocho dígitos binarios, la versión decimal sólo requiere
de tres dígitos y por lo tanto los números se representan en forma mucho más
compacta con respecto al sistema numérico binario. Desafortunadamente las
computadoras trabajan en sistema binario y aunque es posible hacer la
conversión entre decimal y binario, ya vimos que no es precisamente una tarea
cómoda. El sistema de numeración hexadecimal, o sea de base 16, resuelve
éste problema (es común abreviar hexadecimal como hex aunque hex significa
base seis y no base dieciséis). El sistema hexadecimal es compacto y nos
• Programación C++ Esp.Alexis Olvany Torres Ch
proporciona un mecanismo sencillo de conversión hacia el formato binario,
debido a ésto, la mayoría del equipo de cómputo actual utiliza el sistema
numérico hexadecimal. Como la base del sistema hexadecimal es 16, cada
dígito a la izquierda del punto hexadecimal representa tantas veces un valor
sucesivo potencia de 16, por ejemplo, el número 123416 es igual a:
1*163 + 2*162 + 3*161 + 4*160
lo que dá como resultado:
4096 + 512 + 48 + 4 = 466010
Cada dígito hexadecimal puede representar uno de dieciséis valores entre 0 y
1510. Como sólo tenemos diez dígitos decimales, necesitamos "inventar" seis
dígitos adicionales para representar los valores entre 1010 y 1510. En lugar de
crear nuevos símbolos para éstos dígitos, utilizamos las letras A a la F. La
conversión entre hexadecimal y binario es sencilla, considere la siguiente tabla:
• Programación C++ Esp.Alexis Olvany Torres Ch
Binario Hexadecimal
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
• Programación C++ Esp.Alexis Olvany Torres Ch
Ésta tabla contiene toda la información necesaria para convertir de binario a
hexadecimal y visceversa. Para convertir un número hexadecimal en binario,
simplemente sustituya los correspondientes cuatro bits para cada dígito
hexadecimal, por ejemplo, para convertir 0ABCDh en un valor binario:
0 A B C D (Hexadecimal)
0000 1010 1011 1100 1101 (Binario)
Por comodidad, todos los valores numéricos los empezaremos con un dígito
decimal; los valores hexadecimales terminan con la letra h y los valores
binarios terminan con la letra b. La conversión de formato binario a
hexadecimal es casi igual de fácil, en primer lugar necesitamos asegurar que la
cantidad de dígitos en el valor binario es mútiple de 4, en caso contrario
agregaremos ceros a la izquierda del valor, por ejemplo el número binario
1011001010, la primera etapa es agregarle dos ceros a la izquierda para que
contenga doce ceros: 001011001010. La siguiente etapa es separar el valor
binario en grupos de cuatro bits, así: 0010 1100 1010. Finalmente buscamos en
la tabla de arriba los correspondientes valores hexadecimales dando como
resultado, 2CA, y siguiendo la convención establecida: 02CAh.
Boleano:Conjunto finito o infinito de elementos en el cual se han definido las
operaciones de adición, negación y multiplicación. Estas operaciones
corresponden a un grupo acciones de unión, complemento e intersección.
El binario como principal sistema de numeración utilizado en la informática para
la representación de datos
Operaciones básicas en binario (suma, resta,multiplicación y división)
Conceptos de Byte, multiplos y submúltiplos
Representación de datos según la clasificación básica aquí enunciada. Tener
en cuenta que los datos numéricos enteros hay con signo y sin signo.
• Programación C++ Esp.Alexis Olvany Torres Ch
Numéricos
Enteros
Enteros Cortos
Enteros Propiamente dichos
Enteros Largos
Tipos de
datos
Reales
Alfanuméric
os
Caracteres
Cadenas de Caracteres (String)
Boolenos
Ejercicios típicos
a. Como se representa el – 75 en binario, en un Byte
b. Convertir a binario y sumar y restar los siguientes números 41 y 23
c. Convertir 1110001 en base 2 a base 10, base 4, base 8 y base 16
d. Explicar la equivalencia de Byte, KB, MB, GB, TBy convertir 3.25 GB a KB
y a Bytes (recordar que el factor real de conversión es 1024... pero que por
facilitar los cálculos siempre se utiliza el 1000 como f
En Noviembre de 2000 apareció un nuevo standard.
Name Symbol Before the standardization After the standardization
Bit b 1 bit = 1 bit 1 bit = 1 bit
Byte B 1 B = 8 bit 1 B = 8 bit
kilobit kbit / kb 1 kbit = 1024 bit 1 kBit = 1000 bit
Kibibit KiBit 1 KiBit = 1024 bit
kilobyte kB 1 kB = 1024 B = Byte 1 kB = 1000 Byte
kibibyte KiB 1 KiB = 1024 Byte
megabit MBit / Mb 1 MBit = 1024 KBit 1 MBit = 1000 kBit
mebibit MiBit / Mib 1 Mib = 1024 KiBit
• Programación C++ Esp.Alexis Olvany Torres Ch
megabyte MB 1 MB = 1024 kB 1 MB = 1000 kB
Mebibyte MiBit / MiB 1 MiB = 1024 KiB
gigabit GBit / Gb 1 GBit = 1024 MBit 1 GBit = 1000 MBit
gibibit GiBit / Gib 1 Gib = 1024 MiBit
gigabyte GB 1 GB = 1024 MB 1 GB = 1000 MB
gibibyte GiB 1 GiB = 1024 MiB
terabyte TB 1 TB = 1024 GB 1 TB = 1000 GB
tebibyte TiB 1 TiB = 1024 GiB
petabyte PB 1 PB = 1024 TB 1 PB = 1000 TB
pebibyte PiB 1 PiB = 1024 TiB
exabyte EB 1 EB = 1024 PB 1 EB = 1000 PB
exbibyte EiB 1 EiB = 1024 PiB
zettabyte ZB 1 ZB = 1024 EB 1 ZB = 1000 EB
zebibyte ZiB 1 ZiB = 1024 EiB
yottabyte YB 1 YB = 1024 ZB 1 YB = 1000 ZB
yobibyte YiB 1 YiB = 1024 ZiB
Conversion: Ratas de Transferencia y ancho de banda
1 byte es igual a 8 bits
Byte = the well-established information measure unity
1 byte = 8 bits and 1 kilobyte (K / Kb) = 210
bytes = 1,024 bytes
1 megabyte (M / MB) = 220
= 1,048,576 bytes and 1 gigabyte (G / GB) = 230
bytes = 1,073,741,824 bytes
1 terabyte (T / TB) = 240
bytes = 1,099,511,627,776 bytes and 1 petabyte (P / PB) = 250
bytes =
1,125,899,906,842,624 bytes
1 exabyte (E / EB) = 260
bytes = 1,152,921,504,606,846,976 bytes
bit = the well-established data transfer unity
1 kilobit = 1000 bits
1 megabit = 1000000 bits
Datas of the hard disk are counted in kilobytes, however the transfer data rates are in kilobits.
Fait: A 56k modem (= 56000 bits) needs for transferring of 56k datas (= 458753 bits)
not 1 second, but at least 8,2 seconds.
This is confusing and you must always bear it in mind, when calculating transfer rates.
Rule of thumb : KByte de datos / segundos = rata de trasferencias (transfer rate)
Conexion Teorico
rata en KBit
Optimo
rata en KByte
Probable
rata en KByte
14.4 modem 14.4 kbit/s 1.2 KByte/s 1 KByte/s
28.8 modem 28.8 kbit/s 2.4 KByte/s 2 KByte/s
33.6 modem 33.6 kbit/s 3 KByte/s 2.5KByte/s
• Programación C++ Esp.Alexis Olvany Torres Ch
56 k modem 53 kbit/s 4.8 KByte/s 4 KByte/s
Single ISDN 64 kbit/s 6 KByte/s 5 KByte/s
Dual ISDN 128 kbit/s 12 KByte/s 10 KByte/s
DSL - light 384 kbit/s 35 KByte/s 30 KByte/s
DSL 1024 kbit/s 125 KByte/s 90 KByte/s
DSL 2048 kbit/s 250 KByte/s 180 KByte/s
DSL 3072 kbit/s ? KByte/s ? KByte/s
T1 1,54 Mbis/s 150 KByte/s 50 Kbyte/s
Cable modem 6 Mbits/s 300 KByte/s 50 KByte/s
Intranet / LAN 10 Mbits/s 350 KByte/s 35 KByte/s
100 base-T Lan 100 Mbits/s 500 KByte/s 50 KByte/s
El nuevo Standard IEC
bit bit 0 or 1
byte B 8 bits
kibibit Kibit 1024 bits
kilobit kbit 1000 bits
kibibyte (binary) KiB 1024 bytes
kilobyte (decimal) kB 1000 bytes
megabit Mbit 1000 kilobits
mebibyte (binary) MiB 1024 kibibytes
megabyte (decimal) MB 1000 kilobytes
gigabit Gbit 1000 megabits
gibibyte (binary) GiB 1024 mebibytes
gigabyte (decimal) GB 1000 megabytes
terabit Tbit 1000 gigabits
tebibyte (binary) TiB 1024 gibibytes
terabyte (decimal) TB 1000 gigabytes
petabit Pbit 1000 terabits
pebibyte (binary) PiB 1024 tebibytes
petabyte (decimal) PB 1000 terabytes
exabit Ebit 1000 petabits
exbibyte (binary) EiB 1024 pebibytes
exabyte (decimal) EB 1000 petabytes
• Programación C++ Esp.Alexis Olvany Torres Ch
Capacidad de Almacenamiento de Archivos por Bits y Bytes
bit byte Kilobyte Megabyte Gigabyte
Bit 1 0.125 0.000122070312 1.192092895 ×
10-7
1.16415321875
× 10-10
Byte 8 1 0.0009765625 9.53674316 ×
10-7
9.31322575 ×
10-10
Kiloby
te 8 192 1 024 1 0.0009765625
9.53674316 ×
10-7
Megab
yte 8 388 608 1 048 576 1 024 1 0,0009765625
Gigab
yte 8,589,934,592 1,073,741,824 1,048,576 1,024 1
Terab
yte 8,796,093,022,208 1,099,511,627,776 1,073,741,824 1,048,576 1,024
Petaby
te 9,007,199,254,740,990 1,125,899,906,842,624 1,099,511,627,776 1,073,741,824 1,048,576
Exaby
te
9,223,372,036,854,780
,000
1,152,921,504,606,846
,976
1,125,899,906,842,
624
1,099,511,627,
776 1,073,741,824
CD: 2 · 44100 · 16 = 1,4112 MBit/s : 8 bit/byte = 176,4 kbyte/s
2 · 44100 · 20 = 1,764 MBit/s : 8 bit/byte = 220,5 kbyte/s
2 · 44100 · 24 = 2,1168 MBit/s : 8 bit/byte = 264,6 kbyte/s
2 · 48000 · 24 = 2,304 MBit/s : 8 bit/byte = 288,0 kbyte/s
Recommended