Está en la página 1de 25

Programación C++

Esp.Alexis Olvany Torres Ch

• Programación C++ Esp.Alexis Olvany Torres Ch Datos de entrada Tiempo de Ejecució n Programa fuente
Datos de entrada
Datos de
entrada

Tiempo de Ejecució n

Programa fuente
Programa
fuente
Datos de salida
Datos de
salida

Descripció n abstracta del comportamiento de un programa

Datos de entrada
Datos de
entrada
M áquina abstracta Programa objeto
M áquina abstracta
Programa
objeto
Datos de salida
Datos de
salida

Descripció n del comportamiento de un programa

independiente de m á quina pero fá cil de implementar

(implementació n interpretada) M áquina real Datos de Programa Datos de entrada objeto salida
(implementació n
interpretada)
M áquina real
Datos de
Programa
Datos de
entrada
objeto
salida

Descripció n del comportamiento de un programa

dependiente de m á quina (implementació n)

Compiladores I (96 -97 01/03/2010 18:38)

- 6.3 -

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

Programación C++

Esp.Alexis Olvany Torres Ch

• Programación C++ Esp.Alexis Olvany Torres Ch Máquina Abstracta Es una maquina que existe solamente en

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

niveles.

de

Programación C++

Esp.Alexis Olvany Torres Ch

• Programación C++ Esp.Alexis Olvany Torres Ch Un ejemplo concreto se presenta en la figura 1

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

• Programación C++ Esp.Alexis Olvany Torres Ch Existen dos tipos de comandos que se pueden dar

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

• Programación C++ Esp.Alexis Olvany Torres Ch Lenguajes de programación Un lenguaje de programación es un

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

• Programación C++ Esp.Alexis Olvany Torres Ch El recurso humano que interactúa con el Sistema de

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

• Programación C++ Esp.Alexis Olvany Torres Ch Salida de Información: La salida es la capacidad de

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

• Programación C++ Esp.Alexis Olvany Torres Ch Salidas:  Reporte de pagos.  Estados de cuenta.

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

• Programación C++ Esp.Alexis Olvany Torres Ch Algunos sistemas operativos conocidos son Windows, con versiones 95,

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

• Programación C++ Esp.Alexis Olvany Torres Ch  DISPOSITIVOS DE SALIDA: Son los que permiten representar

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

• Programación C++ Esp.Alexis Olvany Torres Ch en la memoria principal y genera las señales de

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

, n), y posteriormente se

accede a las mismas de manera secuencial (1, 2, 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

• Programación C++ Esp.Alexis Olvany Torres Ch El propósito del almacenamiento es guardar datos que la

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

• Programación C++ Esp.Alexis Olvany Torres Ch  Las memorias externas. Un aspecto importante de la

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

• Programación C++ Esp.Alexis Olvany Torres Ch Es necesario aclarar que las unidades son infinitas, pero

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

• Programación C++ Esp.Alexis Olvany Torres Ch también llamado complemento de dos. Es importante entender cómo

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

• Programación C++ Esp.Alexis Olvany Torres Ch dos valores diferentes, por conveniencia utilizamos los valores cero

dos valores diferentes, por conveniencia utilizamos los valores cero y uno.

Éstos dos valores por coincidencia corresponden a los dígitos utilizados por el

binario.

sistema

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

• Programación C++ Esp.Alexis Olvany Torres Ch  La siguiente potencia es 28=256 por lo que

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

• Programación C++ Esp.Alexis Olvany Torres Ch ejemplo, podemos representar el número siete de las siguientes

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

• Programación C++ Esp.Alexis Olvany Torres Ch proporciona un mecanismo sencillo de conversión hacia el formato

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

• Programación C++ Esp.Alexis Olvany Torres Ch Binario Hexadecimal 0000 0 0001 1 0010 2

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

• Programación C++ Esp.Alexis Olvany Torres Ch Ésta tabla contiene toda la información necesaria para convertir

É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

• Programación C++ Esp.Alexis Olvany Torres Ch Enteros Numéricos Reales Caracteres Boolenos Enteros Cortos
Enteros Numéricos Reales Caracteres Boolenos
Enteros
Numéricos
Reales
Caracteres
Boolenos

Enteros Cortos Enteros Propiamente dichos

Ejercicios típicos

a. Como se representa el 75 en binario, en un Byte

a. Como se representa el – 75 en binario, en un Byte b. Convertir a binario

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 facilitar los cálculos siempre se utiliza el 1000 como f

pero que por

En Noviembre de 2000 apareció un nuevo standard.

Name Bit Symbol b B kbit / kb KiBit kB KiB MBit / Mb MiBit
Name
Bit
Symbol
b
B
kbit / kb
KiBit
kB
KiB
MBit / Mb
MiBit / Mib
Before the standardization
After the standardization
1
bit
=
1 bit
1
bit
=
1 bit
Byte
1
B
=
8 bit
1
B
=
8 bit
kilobit
1
kbit
=
1024 bit
1
kBit
=
1000 bit
Kibibit
1
KiBit
=
1024 bit
kilobyte
1
kB
=
1024 B = Byte
1
kB
=
1000 Byte
kibibyte
1
KiB
=
1024 Byte
megabit
1
MBit
=
1024 KBit
1
MBit
=
1000 kBit
mebibit
1
Mib
=
1024 KiBit

Programación C++

Esp.Alexis Olvany Torres Ch

• Programación C++ Esp.Alexis Olvany Torres Ch megabyte MB 1 MB = 1024 kB 1 MB
megabyte MB 1 MB = 1024 kB 1 MB = 1000 kB Mebibyte MiBit /
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

1 megabyte (M / MB) = 2 20 = 1,048,576 bytes and 1 gigabyte (G / GB) = 2 30 bytes = 1,073,741,824 bytes

bytes

byte

bits

and

kilobyte

(K

Kb)

2 10

=

8

1

/

=

bytes

=

1,024

1 terabyte (T

/ TB) = 2 40 bytes = 1,099,511,627,776 bytes and 1 petabyte (P

/

PB) =

1,125,899,906,842,624

 

2 50 bytes = bytes

1

exabyte (E / EB) = 2 60 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
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

• Programación C++ Esp.Alexis Olvany Torres Ch 56 k modem 53 kbit/s 4.8 KByte/s 4 KByte/s

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
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

• Programación C++ Esp.Alexis Olvany Torres Ch Capacidad de Almacenamiento de Archivos por Bits y Bytes

Capacidad de Almacenamiento de Archivos por Bits y Bytes

 

bit

byte

Kilobyte

Megabyte

Gigabyte

 

1.192092895

×

1.16415321875

Bit

1

0.125

0.000122070312

10 -7

× 10 -10

 

9.53674316

×

9.31322575 ×

Byte

8

1

0.0009765625

10 -7

10 -10

Kiloby

9.53674316

×

te

8 192

1 024

1

0.0009765625

10 -7

Megab

 

8 388 608

1 048 576

1 024

1

0,0009765625

yte

Gigab

 

8,589,934,592

1,073,741,824

1,048,576

1,024

1

yte

Terab

 

8,796,093,022,208

1,099,511,627,776

1,073,741,824

1,048,576

1,024

yte

Petaby

9,007,199,254,740,990

1,125,899,906,842,624

1,099,511,627,776

1,073,741,824

1,048,576

te

Exaby

9,223,372,036,854,780

1,152,921,504,606,846

1,125,899,906,842,

1,099,511,627,

1,073,741,824

te

,000

,976

624

776

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