Arquitectura de computadores

La arquitectura de computadores es el diseño conceptual y la estructura operacional fundamental de un sistema de computador. Es decir, es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de un computador, con especial interés en la forma en que la unidad central de proceso (cpu) trabaja internamente y accede a las direcciones de memoria.

También suele definirse como la forma de seleccionar e interconectar componentes de hardware para crear computadores según los requerimientos de funcionalidad, rendimiento y costo.

(IA-32, x86-32).

IA32 es la arquitectura de procesadores de 32 bits de Intel (Intel Architecture 32). Son los procesadores más usados en los ordenadores personales (PC).

Esta gama de procesadores comenzó con el 80386, conocido luego popularmente como 386 o x86 de 16 bits para denominar a toda la gama. Los procesadores de Intel que siguieron y mantuvieron la compatibilidad son el 486, Pentium (ó 586), Pentium II (ó 686), Pentium III y Pentium IV.

La novedad de estos procesadores con respecto a sus predecesores es que incluyen gestión de memoria avanzada (segmentación, paginación, soporte de memoria virtual), unidad de punto flotante, y a partir del Pentium MMX, soporte para operaciones matriciales complejas, muy usadas en aplicaciones gráficas y multimedia.
 
La arquitectura IA-32 fue expandida por AMD en 2003 para soportar nativamente 64 bits, creando la arquitectura x86-64. La primera familia de procesadores en soportar esta arquitectura (llamados AMD64), fueron la familia de porcesadores AMD K8. Fue la primera vez que otra compañía que no sea Intel, crea una mejora importante a la arquitectura IA-32.

Intel entonces tuvo que introducir la familia de procesadores NetBurst modificada (inicialmente llamada IA-32e o EM64T y ahora simplemente Intel 64), y que es casi idéntica al AMD64. El x86-64 es compatible hacia atrás con el de 32 bits sin pérdida de performance.

Intel fue el creador y el más grande proveedor de procesadore IA-32, pero no es el único. Lo secunda AMD y luego otras empresas menores.

Intel, AMD y VIA Technologies todavía producen procesadores IA-32, pero se están moviendo a la arquitectura x86-64.

Breve historia del IA-32 (x86-32)

El conjunto de instrucciones IA-32 fue introducido por Intel en los microprocesadores 80386 en 1985, y todavía se usan en la mayoría de los procesadores más de dos décadas después. De todas maneras, las sucesivas generaciones de microprocesadores hicieron que estas instrucciones se ejecutaran más rápido.

IA-32 es generalmente categorizado como arquitectura CISC, de todas maneras estas clasificaciones se han vuelto menos significativas con el avance del diseño de microprocesadores. La mayoría de las arquitecturas x86 modernas (K7, NetBurst y otras) son a menudo clasificadas como procesadores post-RISC.

Algunas características del IA-32 (x86-32)

* Modelos de gestión de memoria: Existen dos tipos de modelos de acceso a memoria que soporta IA-32. Uno es llamado Modo Real y otro Modo Protegido. En el Modo Real, el procesado está limitado en el acceso a un total de 1 MB de memoria, mientras que en el Modo Protegido puede acceder a toda su memoria (hasta 4 GB en un espacio de dirección).

El Modo Real es requerido por sistemas operativos como DOS, en cambio el Modo Protegido por sistemas operativos como Windows, Linux y OS/2.

* Registros: El 386 y todos los procesadores IA-32, tienen ocho registros de 32 bits de propósito general para las aplicaciones en uso. Los procesadores AMD64 proporcionan 16 registros. Otros procesadores más modernos agregaron nuevos registros con sus propios conjuntos de instrucciones como MMX, 3DNow!, SSE, SSE2, SSE3 y SSSE3.

Existen también registros de sistemas, mayormente usados por los sistemas operativos y no por las aplicaciones.

* Conjunto de instrucciones: El conjunto de instrucciones original del IA-32, ha ido evolucionando en el tiempo con la adición de instrucciones para multimedia. De todas maneras, la última evolución de los IA-32, fue cuando fue extendido a los 64 bits, pero evidentemente ya no podía llamarse más IA-32. La extensión de 64 bits fue llamada x86-64.

El primer conjunto de instrucciones x86-64 fue diseñado por AMD y llamado AMD64. Luego fue imitado por Intel cuando lanzó su Intel 64 (antiguamente IA-32e y EM64T).

IA-64

Intel Itanium, antes conocida como IA-64 (Intel Architecture-64), es una arquitectura de 64 bits desarrollada por Intel en cooperación con Hewlett-Packard (fue desarrollada a principio por éste al que luego se le agregó Intel) para su línea de procesadores Itanium e Itanium 2. Usa direcciones de memoria de 64 bits y está basada en el modelo EPIC (Explicitly Parallel Instruction Computing, procesamiento de instrucciones explícitamente en paralelo).

Los procesadores Intel Itanium 2 representan el diseño de producto más complejo del mundo con más de 1700 millones de transistores. Esto permite obtener sólidas capacidades de virtualización, mejorar la confiabilidad y niveles de rendimiento líderes del mercado.

La arquitectura IA-64 cambia dramáticamente comparado con las arquitecturas x86-32 y x86 usada en otros procesadores Intel. Tampoco es parecida a la otra arquitectura de 64 bits: x86-64 (AMD64 e Intel 64).

IA-64 está basada en un paralelismo explícito a nivel instrucción, con el compilador tomando decisiones acerca de qué instrucciones ejecutar en paralelo. Esto permite al procesador ejecutar hasta seis instrucciones por ciclo de reloj. (La frecuencia de reloj es la velocidad en ciclos por segundo (medidas en hercios) con que un computador realiza las operaciones más básicas.)

El primer Itanium fue lanzado en 2001, convirtiéndose para 2007 en el cuarto microprocesador más utilizado detrás del x86-64, el IBM POWER y el SPARC.
 

Arquitectura 680x0

La familia M68K/680X0/68K/m68k de procesadores CISC de 32 bits de Motorola, iniciada en 1976  fue durante años la competidora de la familia x86 de Intel.
La línea de procesadores 68K ha sido usada en una amplia variedad de sistemas, desde calculadoras Texas Instruments hasta sistemas críticos de control de la lanzadera espacial. Aún así son más populares por ser los procesadores de distintos ordenadores personales, como el Apple Macintosh, el Commodore Amiga, el Atari ST y otros y de consolas, como la Sega Megadrive (Sega Génesis).

Hoy día estos sistemas de sobremesa están descatalogados (en el caso de los Atari) o usan un procesador diferente (como los Amiga y Macintosh). Debido a que estos ordenadores tienen más de una década de antigüedad, los fabricantes originales han cerrado sus puertas o ya no ofrecen un sistema operativo para este hardware. Aún así, los sistemas operativos Debian/Linux, NetBSD y OpenBSD todavía dan soporte a los equipos con procesador m68k.

Arquitectura PowerPC

PowerPC (usualmente abreviada PPC: (Power Perfomance Computing) es el nombre original de la arquitectura de computadoras de tipo RISC, que fue desarrollada por IBM, Motorola, y Apple.

Los procesadores de esta familia fueron producidos por IBM y Freescale Semiconductor (que era la división de semiconductores y microprocesadores de Motorola), siendo utilizados principalmente en ordenadores o computadores Macintosh de Apple Computer hasta el año 2006 y en varios modelos IBM.

El PowerPC ha sido una de las arquitecturas más extendidas gracias a su alto rendimiento y su implementación tecnológica.

Plataformas compatibles con PowerPC
Este microprocesador está diseñado con base en la arquitectura POWER de IBM con algunos componentes tomados del microprocesador Motorola 68000 para darle compatibilidad con arquitectura de los ordenadores de Apple.

En ella pueden ser ejecutados, al menos, los sistemas operativos:

AIX, AmigaOS 4, MorphOS, BeOS (Versiones Antiguas. Descontinuado), FreeBSD, Linux, Mac OS (Versiones Antiguas. Descontinuado), Mac OS X (Desde 10.1 hasta 10.5.x)1, NetBSD, OpenBSD, QNX, VxWorks, Windows NT 3.51

Arquitectura Sparc

SPARC (del inglés Scalable Processor Architecture ). Un procesador con arquitectura escalable es aquel en el que se pueden definir versiones posteriores de la misma con mayor cantidad de características, siempre salvaguardando la compatibilidad con los programas de versiones anteriores. Tiene una arquitectura basada en un juego de instrucciones RISC (Reduced instruction set computer ) desarrollado por la empresa Sun Microsystems y lanzado a mediados de 1987.  
Fue originalmente diseñada por Sun Microsystems y dirigido por el ingeniero Kaa en 1985, se basa en los diseños RISC I y II de la Universidad de California en Berkeley que fueron definidos entre los años 1980 y 1982.
La empresa Sun Microsystems diseñó esta arquitectura y la licenció a otros fabricantes como Texas Instruments, Cypress Semiconductor, Fujitsu, LSI Logic entre otros.

SPARC es la primera arquitectura RISC abierta y como tal, las especificaciones de diseño están publicadas, así otros fabricantes de microprocesadores pueden desarrollar su propio diseño.
 Una de las ideas innovadoras de esta arquitectura es la ventana de registros que permite hacer fácilmente compiladores de alto rendimiento y una significativa reducción de memoria en las instrucciones load/store en relación con otras arquitecturas RISC. Las ventajas se aprecian sobre todo en programas grandes.
La cpu SPARC está compuesta de una unidad entera, UI ( Integer Unit) que procesa la ejecución básica y una FPU ( Floating-Point Unit) que ejecuta las operaciones y cálculos de reales. La IU y la FPU pueden o no estar integradas en el mismo chip.
Aunque no es una parte formal de la arquitectura, las computadoras basadas en sistemas SPARC de Sun Microsystems tienen una unidad de manejo de memoria (MMU) y un gran caché de direcciones virtuales (para instrucciones y datos) que están dispuestos periféricamente sobre un bus de datos y direcciones de 32 bits.
 
 

UNIDAD BÁSICA DE INFORMACIÓN

 
Bit:

Un Bit es el acrónimo de Binary digit (dígito binario). Un bit es un dígito del sistema de numeración binario. Un sistema de numeración es un conjunto de símbolos y reglas de generación que permiten construir todos los números válidos y el sistema binario, en matemáticas e informática, es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno (0 y 1). En pocas palabras, y como ya muchos sospechan: las computadoras solo entienden 0 y 1. Esto se debe principalmente a que trabajan con voltajes internos: encendido = 1 y apagado = 0. Pues bien un bit o dígito binario puede representar uno de esos dos valores, 0 ó 1.

El bit es la unidad mínima de información empleada en informática, en cualquier dispositivo digital, o en la teoría de la información. Con él, podemos representar dos valores cuales quiera, como verdadero o falso, abierto o cerrado, blanco o negro, norte o sur, masculino o femenino, rojo o azul, etc. Basta con asignar uno de esos valores al estado de “apagado” (0), y el otro al estado de “encendido” (1).

Cuando se habla de CPUs o microprocesadores de 4, 8, 16, 32, 64 bits, se refiere al tamaño, en número de bits, que tienen los registros internos del procesador y también a la capacidad de procesamiento de la Unidad aritmético lógica (ALU). Un microprocesador de 4 bits tiene registros de 4 bits y la ALU hace operaciones con los datos en esos registros de 4 bits, mientras que un procesador de 8 bits tiene registros y procesa los datos en grupos de 8 bits.

Los procesadores de 16, 32 y 64 bits tienen registros y ALU de 16, 32 y 64 bits respectivamente, y generalmente pueden procesar los datos, tanto en el tamaño en bits de sus registros como, dependiendo que su diseño lo permita, en determinados submúltiplos de éstos.

Cuando se habla de procesadores de,  por ejemplo 32 bits, nos referimos a su capacidad de procesar datos en hasta 32 bits simultáneamente (también puede procesar datos en 8 y 16 bits). La denominación de “microprocesador de 32 bits” no se refiere al tamaño del bus de datos del CPU ni del bus de direcciones, sino a su capacidad de trabajar normalmente con los datos en el número máximo de bits (salvo alguna excepción).

Byte:

Un Byte u octeto, es una secuencia de bits contiguos, cuyo tamaño depende del código de información o código de caracteres en que sea definido. Se usa comúnmente como unidad básica de almacenamiento de datos en combinación con los prefijos de cantidad. Originalmente el byte fue elegido para ser un submúltiplo del tamaño de palabra de un ordenador, desde cinco a doce bits. El término “octeto” se utiliza ampliamente como un sinónimo preciso donde la ambigüedad es indeseable (por ejemplo, en definiciones de protocolos).

Así que tenemos que un byte = 8 bits

Kilobyte (kB):

El kB es una unidad de almacenamiento de información que equivale a 103 bytes. El término kilobyte y el símbolo kB se han utilizado históricamente para hacer referencia tanto a 1024 (210) bytes como a 1000 (103) bytes, dependiendo del contexto, en los campos de la informática y de la tecnología de la información.

En los inicios de la informática, las unidades se mostraban como múltiplos de 1000, pero en los años 60 se empezó a confundir 1000 con 1024, puesto que la memoria de los ordenadores trabajan en base binaria y no decimal. El problema radicó al nombrar estas unidades, ya que se adoptaron los nombres de los prefijos del Sistema Internacional de Medidas. Dada la similitud en las cantidades, se utilizaron los prefijos de base mil que se aplican a las unidades del sistema internacional (tales como el metro, el gramo, el voltio o el amperio). Sin embargo, etimológicamente es incorrecto utilizar estos prefijos (de base decimal) para nombrar múltiplos en base binaria. Como ocurre en el caso del kilobyte, a pesar de que 1024 se aproxime a 1000.

Kibibyte:

Un kibibyte (contracción de kilobyte binario) es una unidad de información o almacenamiento de datos. Corresponde a 210 bytes, es decir 1024 bytes. Se representa con el símbolo KiB con K mayúscula.

Megabyte: 

El megabyte (MB) o megaocteto (Mo) es una unidad de medida de cantidad de datos informáticos. Es un múltiplo del byte u octeto, que equivale a 106 B (un millón de bytes). Se representa por MB y no por Mb, cuya correspondencia equivaldría a megabit. Coloquialmente a los megabytes se les denomina megas.

Es la unidad más típica actualmente, junto al múltiplos inmediatamente superior, el gigabyte, usándose para especificar la capacidad de la memoria RAM, de las memorias de tarjetas gráficas, de los CD-ROM, o el tamaño de los programas, de los archivos grandes, etc. La capacidad de almacenamiento se mide habitualmente en gigabytes, es decir, en miles de megabytes.

Mebibyte:

Un mebibyte (contracción de megabyte binario) o, en su forma abreviada, MiB, es una unidad de información o memoria cuyo valor es de 220 equivalente a 1.048.576 bytes.

Gigabyte:

Un gigabyte es una unidad de almacenamiento de información cuyo símbolo es el GB, equivale a 109 bytes. Esta es una unidad de almacenamiento muy usada hoy en día en discos duros y unidades SSD, por ejemplo un disco duro de 500 GB o una unidad SSD de 120 GB de capacidad. Este término puede ser fácilmente confundido con Gigabit, que es 1/8 de un gigabyte, puesto que está referido a bits en lugar de a bytes, y se abrevia como Gb o Gbit; se usa principalmente para describir el ancho de banda y las tasas de transmisión de flujos de datos de alta velocidad (por ejemplo: la velocidad actual de las interfaces de fibra óptica es de 2 Gbit por segundo).

Gibibyte:

Un gibibyte (contracción de gigabyte binario) es una unidad de información o almacenamiento de datos. Corresponde a 230 bytes, es decir 1.073.741.824 bytes. Se representa con el símbolo GiB.

Terabyte:

Un terabyte es una unidad de almacenamiento de información cuyo símbolo es el TB, y equivale a 1012 bytes. Adoptado en 1960, el prefijo tera viene del significado griego “monstruo o bestia”.

1 TB = 103 GB = 106 MB = 109 kB = 1012 bytes

Tebibyte:

Tebibyte es una unidad de almacenamiento de información. Corresponde a 240 bytes, es decir 1.099.511.627.776 bytes. Se representa con el símbolo TiB. El empleo del prefijo “tebi” (tera binario) se debe a que es la potencia de 2 que más se aproxima a “tera”, prefijo cuyo valor es 1012, es decir, 1.000.000.000.000.

Petabyte:

Un petabyte es una unidad de almacenamiento de información cuyo símbolo es el PB, y equivale a 1015 bytes = 1.000.000.000.000.000 de bytes. El prefijo peta viene del significado griego “cinco”, pues equivale a 10005 ó 1015. Está basado en el modelo de tera, que viene del griego ‘monstruo’.

Como ejemplo de esta unidad podemos mencionar Google, quien procesa sobre 20 petabytes de datos cada día (posiblemente más); filmar la vida de una persona (100 años) en alta definición (10 megapíxels, 50 fotogramas por segundo) ocuparía 0,5 petabytes. Facebook tiene 60 mil millones de imágenes, lo que supone 1,5 petabytes de almacenamiento y crece a un ritmo de 220 millones de imágenes por semana. Estos ejemplos nos dan una idea de lo que es un petabyte!

Pebibyte:

Pebibyte es la denominación de una Unidad de almacenamiento de información. Corresponde a 250 bytes, es decir, 1.125.899.906.842.624 bytes. Se representa con el símbolo PiB. El empleo del prefijo «pebi» (peta binario) se debe a que es la potencia de 2 que más se aproxima a “peta”, prefijo cuyo valor es 1015, es decir, 1.000.000.000.000.000.

Exabyte:

Un exabyte es una unidad de medida de almacenamiento de información cuyo símbolo es el EB, equivale a 1018 bytes. El prefijo viene adoptado en 1991 del griego, con significado “seis” (como hexa-), pues equivale a 10006. Tomemos como ejemplo el tráfico anual que puede tener Internet, se estima entre 5 y 9 exabytes. Del mismo modo, el tamaño de Internet (entendido como almacenamiento digital global) se estima en cerca de 500 exabytes.

Zettabyte:

Un zettabyte es una unidad de almacenamiento de información cuyo símbolo es el ZB, equivale a 1021 bytes. El prefijo viene adoptado del latín “septem” en 1991, que significa siete (como hepta-), pues equivale a 10007. Como ejemplo, se ha estimado que a finales del año 2010 se alcanzó la cifra de 1,2 ZB de datos almacenados (a nivel mundial), y que estos datos alcanzarían los 1,8 ZB en 2011. Bastante!

Yottabyte:

Un yottabyte es una unidad de almacenamiento de información cuyo símbolo es el YB, y equivale a 1024 bytes. Adoptado en 1991, el prefijo yotta viene del griego okto, que significa “ocho”.

Resumen

Hagamos un pequeño resumen, ya que esto puede resultar un poco complicado

1 bit = unidad mínima de almacenamiento, sistema binario (0 ó 1).
1 byte (B) = 8 bit
1 kB = 1024 byte
1 MB = 1024 kB
1 GB = 1024 MB
1 TB = 1024 GB
1 PB = 1024 TB
1 EB = 1024 PB
 

Bases numéricas

EL SISTEMA DECIMAL (Base 10):
Este sistema está formado por diez símbolos, llamados números arábicos. También es llamado sistema de base 10. Usando los diez símbolos separadamente 0, 1, 2, 3, ..., 9 nos permite representar el valor de los números en unidades individuales, pero para representar mas de nueve números es necesario combinarlos. Cuando usamos símbolos en combinación, el valor de cada uno de ellos depende de su posición con respecto al punto decimal, designando así un símbolo para las unidades, otro para las decenas, otro para las centenas, otro para los millares (de miles, no de millón), en adelante.
El símbolo correspondiente a las unidades asume la posición mas izquierda antes del punto decimal. Esta designación de posición determina que la potencia del número se corresponde con la distancia en que está del punto decimal, y es por ello que la primera posición se llama UNIDAD (100 = 1). Matemáticamente esto puede ser representado como:

unidad = 100 decena = 101 centena = 102

Por ejemplo: El valor en combinación de los símbolos 234 es determinado por la suma de los valores correspondientes a cada posición:

2 x 102

+

3 x 101

+

4 x 100

 

Que equivale a:

2 x 100

+

3 x 10

+

4 x 1

 

Efectuando las multiplicaciones esto da:

200

+

30

+

4

 

Cuya suma da como resultado: 234

La posición derecha del punto decimal es representada por número enteros pero negativos comensando desde -1 para la primera posición. Matemáticamente las tres primeras posiciones a la derecha del punto decimal se expresan como:

décimas 10-1

centésimas 10-2

milésimas 10-3

 

En un ejemplo como el anterior, pero mas elaborado podemos ver que el valor 18.947 equivale a:

1x108x109x10-1 + 4x10-2 + 7x10-3  

1x10 + 8x1 + 9x0.1 + 4x0.01 + 7x0.001

=

10 + 8 + 0.9 + 0.04 + 0.007

Para representar un número base diez es posible colocar su valor seguido de la base en sub-índice (18.97410) o bien seguido de la letra d entre paréntesis: 645(d).

EL SISTEMA BINARIO (Base 2):
Es un sistema de números de base igual a 2, lo que nos lleva a representar los números con sólo dos símbolos distintos: 0 y 1.
Es usado para representar números del mismo modo que el sistema decimal, donde cada símbolo puede ser usado individualmente o en combinación. Por ello con sólo un símbolo en sistema binario podemos representar apenas dos valores (cero y uno) a diferencia del sistema decimal donde un sólo símbolo podía representar hasta diez. Combinando dos símbolos binarios logramos generar los cuatro primeros valores del sistema binario, que se muestran abajo:


00
01
10 (El uno se movió una posición a la izquierda)
11
Para un número mas grande, el símbolo 1 debe ser movido otra vez, haciendo aparecer una tercera columna, tal como ocirrió antes con la segunda. aplicando todas las combinaciones posibles de 0's y 1's, se obtiene:


Binario Decimal
 

Binario

Decimal

000

0

001

1

010

2

011

3

100

4

101

5

110

6

111

7



En este sistema se emplea el mismo concepto de posicionamiento y pontencia que en el anterior. A continuación se ven algunos ejemplos de posicionamiento y potencia de los símbolos:
Para números enteros (a la izquierda del punto decimal):
Trigésimo Segundo (32)  = 25
Decimo Sexto (16)  = 24
Octavo (8) = 21
Cuarto (4) = 22
Segundo (2) = 21
Primero (1)  = 20
Para números decimales (a la derecha del punto):
Un Medio = 2-1
Un Cuarto = 2-2
Un Octavo = 2-3
Cuando los símbolos 0 y 1 son usados para representar números binarios, cada símbolo es llamado dígito binario, o simplemente BIT. El número binario 10102 es llamado número binario de cuatro dígitos o número binario de 4-bits.
Este sistema es muy empleado en circuiteria digital por ser fácil de representar y transmitir electrónicamente. Comunmente (aunque no siempre) el símbolo cero del sistema binario está representado por un estado eléctrico bajo, usualmente correspondiente a la masa o a los 0V. Del mismo modo el símbolo 1 es representado por un estado alto que, por lo general, se corresponde con la tensión de fuente (suele ser 5V en sistemas digitales). Pero esto es "por lo general". Hay muchos casos donde si bien el sistema es binario los símbolos son representados eléctricamente de otra forma. Tal es el caso del estándar de comunicaciones seriales 232C donde el 1 es representado por una tensión negativa de entre 5V y 25V, mientras que el 0 es representado por una tensión positiva del mismo rango.



CONVERSIÓN ENTRE SISTEMAS


DE BINARIO A DECIMAL:
Para poder transformar números binarios en su correspondiente decimal  basta multiplicar el dígito binario (que sólo puede ser 0 o 1) por 2 elevado a la potencia correpondiente a la distancia de ese símbolo al punto decimal. Luego se suman los valores obtenidos y se consigue el número final.
Ejemplos:
102 = 1x21 + 0x20 = 1x2 + 0x1 = 2 + 0 = 210
1012 = 1x22 + 0x21 + 1x20 = 1x8 + 1x4 + 0x2 + 1x1 = 4 + 0 + 1 = 510
10012 = 1x23 + 0x22 + 0x21 + 1x20 = 1x8 + 0x4 + 0x2 + 1x1 = 8 + 0 + 0 + 1 = 910
Y para número fraccionarios:
0.0112 = 0x2-1 + 1x2-2 + 1x2-3  = 0x0.5 + 1x0.25 + 1x0.125 = 0 + 0.25 + 0.125 = 0.37510
0.1012 = 1x 2-1 + 0x 2-2 + 1 x 2-3  = 1x0.5 + 0x0.25 + 1 x0.125 = 0.5 + 0 + 0.125 = 0.62510
110.0102 = 1x22 + 1x21 + 0x20 + 0 x 2-1 + 1 x 2-2 + 0 x 2-3
1x4 + 1x2 + 0x1 + 0x0.5 + 1x0.25 + 0x.125
4 + 2 + 0 + 0 + 0.25 + 0
6.2510
Como se ve en los ejemplos el punto decimal aparece automáticamente en la posición correcta una vez efectuada la suma de los componentes.

DE DECIMAL A BINARIO:
Aquí veremos el método de divisiones y multiplicaciones sucesivas.
Para convertir un némero ENTERO decimal a una nueva base, el número decimal es sucesivamente dividido por la nueva base. Como en nuestro caso la nueva base es 2 el número será sucesivamente dividido por 2, O sea, el número original es dividido por 2, el resultado de ese cociente es dividido por 2 sucesivamente hasta que el cociente de 0. El resto de cada división es un número binario que conforma el número resultante de la conversión. El primer resultado producido (el primer resto obtenido) corresponde al bit mas próximo al punto decimal (o lo que se conoce como bit de menor peso). Los sucesivos bits se colocan a la izquierda del anterior. Notese que esto es como escribir en sentido contrario al empleado normalmente.
Veamos esto con un ejemplo:
Convertiremos a binario el número 1810
18 / 2 = 9 y resta 0 (este cero es el bit mas próximo al punto binario)
9 / 2 = 4 y resta 1 (este uno es el bit que le sigue a la izquierda al cero obtenido arriba)
4 / 2 = 2 y resta 0 (este cero es el bit que le sigue a la izquierda al uno obtenido arriba)
2 / 2 = 1 y resta 0 (este cero es el bit que le sigue a la izquierda al cero obtenido arriba)
Con 1 no se puede continuar dividiendo pero se coloca éste a la izquierda del cero obtenido arriba, quedando como bit de mayor peso.
Entonces, 1810 = 100102.
En el caso de convertir un número decimal FRACCIONARIO, la parte fraccionaria debe ser multiplicada por 2 y el número binario es formado por 0's o 1's que aparecen en la parte correspondiente al entero. Solo que en este caso el número binario se escribe de izquierda a derecha, a diferencia de lo explicado antes para los números enteros. Las multiplicaciones se efectúan SOLO sobre la parte fraccionaria del número por lo que siempre serán 0.XXX. Nunca debe multiplicar 1.XXX. El proceso de multiplicaciones sucesivas concluye cuando quedan en cero la parte entera y la fraccionaria.
En este ejemplo convertiremos el número fraccionario 0.62510
0.625 x 2 = 1.250 (bit mas próximo al punto binario)
0.250 x 2 = 0.500 (bit a la derecha del uno obtenido anteriormente)
0.500 x 2 = 1.000 (bit a la derecha del cero obtenido anteriormente)
La operación concluye porque no queda parte fraccionaria para seguir multiplicando.
0.62510 = 0.1012
Pueden ocurrir situaciones donde cualquier número multiplicado por 2 nunca llegue a cero Esto causa que el número binario obtenido sea aproximado, como se observa en el ejemplo de abajo:
0.610
0.6 x 2 = 1.2 (bit mas próximo al punto binario)
0.2 x 2 = 0.4 (bit a la derecha del uno obtenido arriba)
0.4 x 2 = 0.8 (bit a la derecha del cero obtenido arriba)
0.8 x 2 = 1.6 (bit a la derecha del cero obtenido arriba)
0.6 x 2 = 1.2 (bit a la derecha del uno obtenido arriba)
0.2 x 2 = 0.4 (Retorna a la situación inicial... Ver segunda línea del proceso)

EL SISTEMA OCTAL (Base 8):
Este sistema es muy usado en trabajos digitales, por su fácil conversión de y hacia el sistema binario. Tiene su base igual a ocho, lo que genera la necesidad de ocho símbolos para representar valores en este sistema y para esta finalidad se seleccionaron los primeros ocho símbolos del sistema decimal: 0, 1, 2, 3, 4, 5, 6 y 7.
A continuación del 7 y para seguir contando hacia adelante, hay que agregar una nueva columna a la izquierda la cual tendrá como valor inicial un 1. De esta forma es posible obteber otras ocho nuevas conbinaciones tal como sucedia en los otros sistemas comentados anteriormente. Estos son algunos de los valores para cada símbolo.
Septuagésimo Cuarto (64) = 82
Octavo (8) = 81
Unidad (1) = 80
Un Octavo =  8-1
Un Sesenta y Cuatro Avos = 8-2
Los números octales son parecidos a los números decimales excepto por los símbolos 8 y 9, que no son usados.

CONVERSIÓN DE DECIMAL A OCTAL:
En esta caso basta usar el mismo método de conversión con los números binarios. Pero en vez de hacer divisiones sucesivas por 2 hay que efectuarlas por 8. Nótese que el divisor corresponde a la base del sistema al cual se va a convertir. Lo mismo sucede con las multiplicaciones sucesivas, necesarias para convertir números fraccionarios.
Ejemplo 1: Convertir 24510
245 / 8 = 30 y resta 5 (dígito mas próximo al punto octal)
30 / 8 = 3 y resta 6 (dígito a la izquierda del 5 obtebido arriba)
No se puede seguir dividiendo, por lo que el 3 queda como dígito de mayor peso a la izquierda del 6 obtenido arriba.
Resultado: 24510 = 3658

Ejemplo 2: Convertir 17510
175 / 8 = 21 y resta 7 (dígito mas próximo al punto octal)
21 / 8 = 2 y resta 5 (dígito a la izquierda del 7 obtenido arriba)
No se puede seguir dividiendo, por lo que el 2 queda como dígito de mayor peso a la izquierda del 7 obtenido arriba.
Resultado: 17510 = 2578

Ejemplo 3: Convertir 0.43210
0.432 x 8 = 3.456 (dígito mas próximo al punto octal)
0.456 x 8 = 3.648 (dígito a la derecha del 3 obtenido arriba)
0.648 x 8 = 5.184 (dígito a la derecha del 3 obtenido arriba)
0.184 x 8 = 1.472 (dígito a la derecha del 5 obtenido arriba)
Resultado: 0.43210 = 0.33518
OBS.: Note que la la conversión no fué exacta.

SISTEMA HEXADECIMAL (Base 16):
Este sistema requiere el uso de 16 símbolos, siendo formado por los mismos empleados en el sistema decimal y seis letras del alfabeto arábico comprendidas entre A y F. Dado que las computadoras usualmente agrupan conjuntos de bits en múltiplos de cuatro este sistema permite representar a cada grupo con un simple símbolo. Por ello es que es tan usado en estos días. En la tabla de abajo se muestra la relación entre los sistemas.


Decimal Binario Octal Hexa

Decimal

Binario

Octal

Hexa

0

0000

0

0

1

0001

1

1

2

0010

2

2

3

0011

3

3

4

0100

4

4

5

0101

5

5

6

0110

6

6

7

0111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

Al igual que en los otros sistemas en Hexadecimal, cuando se llega a la F y se requiere seguir contando hacia adelante se torna necesario agregar una nueva columna a la izquierda de la actual la cual inicialmente deberá estar en 1. Esto permite generar otros 16 símbolos nuevos diferentes a los anteriores.
 

CONVERSIÓN DE HEXADECIMAL A BINARIO:

Para efectuar la conversión basta con colocar los cuatro bits correspondientes a cada símbolo del número hexa respetando su posición original. Para saber el balor de cada símbolo sólo tiene que mirar la tabla de relación entre sistemas mostrada arriba.

Por ejemplo: Para convertir 7A216

7

A

2

0111

1010

0010

Resultado: 7A216 = 0111101000102

Otro ejemplo: Para convertir 3D4.F16

3

D

4

.

F

0011

1101

0100

.

1111

Resultado: 3D4.F16 = 001111010100.11112

CONVERSIÓN DE BINARIO A HEXADECIMAL:

Primeramente hay que agrupar los bits de a cuatro comenzando por la derecha y siguiendo hacia la izquierda. Si bien en palabras cuya longitud sea múltiplo de cuatro esto no tiene obligatoriedad, en aquellas cuyo tamaño no sea multiplo de cuatro si selecciona de izquierda a derecha los grupos de bits quedarán mal conformados. Esto anterior para la parte entera. Para la parte fraccionaria el orden es inverso, o sea que se agrupa de izquierda a derecha. Nótese que siempre es del punto hacia afuera. Una vez formados los grupos basta con fijarse en la tabla de arriba y reemplazar cada grupo por el símbolo Hexa correspondiente. 

Ejemplos: 

Ejemplo 1: Convertir 1010110100102

1010

1101

0010

A

D

2

Resultado: 1010110100102 = AD216

Ejemplo 2: Convertir 101110101102

101

1101

0110

5

D

6

 

Resultado: 101110101102 = 5D616

Ejemplo 3: 1101011110.1012

0011

0101

1110

.

1010

3

5

E

.

A

 

 Resultado: 1101011110.1012 = 35E.A16

OBS: Cuando un grupo de bits de la parte entera queda formado por menos de cuatro bits sus posiciones a la izquierda deben ser asumidas como ceros, las cuales verá que no surten efecto en el valor. En tanto cuando esto ocurra en la parte fraccionaria pas posiciones a la derecha son las que deben ser completadas con cero. Aquí si tiene efecto. En el ejemplo de arriba los ceros se colocaron reasaltados para facilitar su visualización.

CONVERSIÓN DE HEXADECIMAL A DECIMAL:

Los números hexa son convertidos a su equivalene decimal multiplicando el peso de cada posición por el equivalente decimal del dígito de cada posición y sumando los productos.

Entonces:

12116 = 

1 x 162 + 2 x 161 + 1 x 160

 

1 x 256 + 2 x 16 + 1 x 1

 

256 + 32 + 1

 

28910

 

A1C16

A x 162 + 1 x 161 + C x 160

 

10 x 256 + 1 x 16 + 12 x 1

 

2560 + 16 + 12

 

258810

 

OBS: Los valores que sustituyen a las letras se obtienen de la tabla dada arriba.

CONVERSIÓN DE DECIMAL A HEXADECIMAL:

Se puede realizar empleando dos procesos: Divisiones sucesivas por 16, cuando el número es entero, o multiplicaciones sucesivas por 16, cuando el número es fraccionario. Siguiendo los mismos lineamientos empleados con los otros sistemas numéricos.

Ejemplo 1: 65010

650 / 16 = 40 y resta 10 = A (dígito mas próximo al punto hexadecimal)
40 / 16 = 2 y resta 8 (dígito a la izquierda del anterior)
No se puede continuar dividiendo, por lo que el 2 queda como símbolo mas significativo a la izquierda del anterior.

Resultado 65010 = 28A16

Ejemplo 2: 258810

2588 / 16 = 161 y resta 12 = C (dígito mas próximo al punto hexadecimal)
161 / 16 = 10 y resta 1 (Dígito siguiente a la izquierda del obtenido arriba)
No se puede seguir dividiendo, por lo que el diez (la A) queda como símbolo mas significativo a la izquierda del obtenido arriba

Resultado 258810 = A1C16

Ejemplo 3: 0.64210

0.642 x 16 = 10.272 (dígito mas próximo al punto hexadecimal) 1010=A16
0.272 x 16 = 4.352 (dígito siguiente a la derecha del anterior)
0.352 x 16 = 5.632 (dígito siguiente a la derecha del anterior)
0.632 x 16 = 10.112 (Dígito siguiente a la derecha del anterior) 1010=A16

Resultado 0.64210 = 0.A45A16

OBS.: Note que la conversión no fué exacta.