You are on page 1of 21

Qu son los lenguajes de programacin y para que sirven?

Un lenguaje de programacin es un lenguaje formal diseado para


realizar procesos que pueden ser llevados a cabo por mquinas como
las computadoras.

Pueden usarse para crear programas que controlen el comportamiento fsico y


lgico de una mquina, para expresar algoritmos con precisin, o como modo de
comunicacin humana.

Est formado por un conjunto de smbolos y reglas sintcticas y semnticas que


definen su estructura y el significado de sus elementos y expresiones
Qu es el lenguaje c?
C es un lenguaje de programacin de propsito general que
ofrece economa sintctica, control de flujo y estructuras sencillas y un buen
conjunto de operadores. No es un lenguaje de muy alto nivel y ms bien un
lenguaje pequeo, sencillo y no est especializado en ningn tipo de aplicacin.

C es el resultado de un proceso de desarrollo comenzado con un lenguaje anterior


denominado BCPL, e influenci otro lenguaje denominado B, que en los aos 70
llev al desarrollo del C. Fue creado e implementado por primera vez por Dennis
Ritchie en un DEC-PDP11 bajo sistema operativo UNIX.En 1978 se edit la
primera publicacin de C por Kernighan y Ritchie. Con la popularidad de las
microcomputadoras se crearon muchas implementaciones de C y aparecieron
discrepancias. Para remediar la situacin el Instituto de Estndares Americanos
(ANSI) estableci un comit a principios del verano de 1983 para crear un
estndar que definiera de una vez por todas el lenguaje, y ste se aprueba en
1988.
Diferencias principales entre c y c++

Pedir un dato en C
scanf("modificador", &nombre de la variable);
Pedir un dato en C++
cin >> nombre de la variable;
Mostrar un dato en C
printf("Dato: modificador", nombre de la variable);
Mostrar un dato en C++
cout << "Dato: " << nombre de la variable;
Los modificadores son los siguientes: %d para int, %f para float, %s para string,
%c para char.
Libreras en C++

CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7


Por simple convencin las libreras en C terminan en .h (punto hache). Todas las
libreras de C sirven para C++, sin embargo, tambin por convencin, se elimina la
terminacin .h y mejor se agrega c al principio.
Libreria en C Librera en C++
math.h cmath
string.h cstring
time.h ctime
etcetera.
El namespace
C como lenguaje tiene un conjunto de palabras reservadas, como por ejemplo: if,
for, while, int, float, C++ es una ampliacin, por lo tanto tiene que agregar
nuevas palabras reservadas. stas palabras reservadas estn en un namespace
(espacio de nombres). En especfico cout y cin estn el namespace std (standard).
Si no declararamos que vamos a usar el namespace std (using namespace std;),
cada vez que quisieramos usar cout, tendramos que escribir std::cout.

Qu son las librerias?

Se conoce como libreras a cierto tipo de archivos que podemos importar o incluir
en nuestro programa. Estos archivos contienen las especificaciones de diferentes
funcionalidades ya construidas y utilizables que podremos agregar a nuestro
programa, como por ejemplo leer del teclado o mostrar algo por pantalla entre
muchas otras ms.

Al poder incluir estas libreras con definiciones de diferentes funcionalidades


podremos ahorrarnos gran cantidad de cosas, imaginemos por ejemplo que cada
vez que necesitemos leer por teclado, debamos entonces crear una funcin que lo
haga (algo realmente complejo), al poder contar con las libreras en C++,
podremos hacer uso de una gran variedad de funciones que nos facilitaran la vida
y aumentarn la modularidad de nuestros cdigos.

Las libreras no son nicamente archivos externos creados por otros, tambin es
posible crear nuestras propias libreras y utilizarlas en nuestros programas. Las
libreras pueden tener varias extensiones diferentes, las ms comunes son: .lib,
.bpl, .a, .dll, .h y algunas ms ya no tan comunes

Cules son las librerias mas utilizadas en c++?

o fstream:
Flujos hacia/desde ficheros. Permite la manipulacin de archivos desde el
programar, tanto leer como escribir en ellos.
CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7
o iosfwd:
Contiene declaraciones adelantadas de todas las plantillas de flujos y sus
typedefs estndar. Por ejemplo ostream.
o iostream:
Parte del a STL que contiene los algoritmos estndar, es quiz la ms usada e
importante (aunque no indispensable).
o La biblioteca list:
Parte de la STL relativa a contenedores tipo list; listas doblemente enlazadas
o math:
Contiene los prototipos de las funciones y otras definiciones para el uso y
manipulacin de funciones matemticas.
o memory:
Utilidades relativas a la gestin de memoria, incluyendo asignadores y punteros
inteligentes (auto_ptr).
"auto_ptr" es una clase que conforma la librera memory y permite un fcil manejo
de punteros y su destruccin automaticamente.
o Biblioteca new:
Manejo de memoria dinmica
o numeric:
Parte de la librera numrica de la STL relativa a operaciones numricas.
o ostream:
Algoritmos estndar para los flujos de salida.
o queue:
Parte de la STL relativa a contenedores tipo queue (colas de objetos).
o Librera stdio:
Contiene los prototipos de las funciones, macros, y tipos para manipular datos de
entrada y salida.
o Librera stdlib:
Contiene los prototipos de las funciones, macros, y tipos para utilidades de uso
general.
o string:

CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7


Parte de la STL relativa a contenedores tipo string; una generalizacin de las
cadenas alfanumricas para albergar cadenas de objetos. Muy til para el fcil
uso de las cadenas de caracteres, pues elimina muchas d elas dificultades que
generan los char
o typeinfo:
Mecanismo de identificacin de tipos en tiempo de ejecucin
o vector:
Parte de la STL relativa a los contenedores tipo vector; una generalizacin de las
matrices unidimensionales C/C++
o forward_list
Esta librera es til para implementar con gran facilidad listas enlazadas simples.
o list
Permite implementar listas doblemente enlzadas (listas enlazadas dobles)
facilmente.
o iterator
Proporciona un conjunto de clases para iterar elementos.
o regex
Proporciona fcil acceso al uso de expresiones regulares para la comparacin de
patrones.
o thread
til para trabajar programacin multihilos y crear mltiples hilos en nuestra
aplicacin.

Cules son las sentencias mas utilizadas?

Las sentencias especifican y controlan el flujo de ejecucin del programa. Si no


existen sentencias especficas de seleccin o salto, el programa se ejecuta de
forma secuencial en el mismo orden en que se ha escrito el cdigo fuente
Una expresin es una secuencia de operadores; operandos; elementos de
puntuacin y palabras clave, que especifican una computacin. Tiene sentido
computacional en s misma y equivale a una frase en el lenguaje normal. Entre sus
caractersticas distintivas estn las de poder producir un resultado y posibles
efectos laterales. Ejemplo:
extern x; // No produce un valor
y = 22; // Produce un valor
z = i++; // Valor + efectos laterales
Cualquier expresin finalizada en un punto y coma ; forma una sentencia:
CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7
< expresin >;
C++ ejecuta las sentencias evaluando la expresin. Todos los efectos colaterales
de la evaluacin son tenidos en cuenta antes de ejecutar la prxima sentencia. La
mayora de sentencias C++ son asignaciones o llamadas a funciones.
Un caso especial es la sentencia nula; consiste en un punto y coma (;) aislado.
Una sentencia nula no hace nada, pero puede ser necesaria en situaciones en que
la sintaxis del lenguaje espere una sentencia pero nuestro programa no necesita
hacer nada.
Dada la definicin anterior, resulta evidente que pueden existir infinitas sentencias
distintas, e innumerables criterios para su clasificacin. Una de las posibles, que
adems coincide con la clasificacin del Estndar, distingue las siguientes clases
de sentencia:
De etiqueta
De expresin
Compuestas
De seleccin
De iteracin
De salto
De declaracin
Bloques de intento

Sentencias de etiqueta

En C++ existen tres clases de sentencias etiquetadas: las etiquetas directas (

4.10.1a), las sentencias case ( 4.10.1b) y las default ( 4.10.1c), estas ltimas

se utilizan en conjuncin con las sentencias switch.


Sentencias de expresin
Podramos decir que son las que no pertenecen a ninguno de los otros grupos y
que, en la prctica, son las ms abundantes. Generalmente son asignaciones o
invocaciones de funciones. Ejemplo:
pint = &x;
foo(c);

Sentencias compuestas

Las sentencias compuestas, tambin denominadas bloques ( 1.3.1) se utilizan

en aquellas situaciones en que la sintaxis espera una sentencia pero se necesita


usar varias. Ejemplo:

CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7


if (first) ++x;
else {
--x; z = a;
}
En caso de cumplirse la condicin hay que incrementar x, lo que puede hacerse
en una sola sentencia, pero si la condicin resulta falsa, se precisan dos
computaciones. Para que se comporten como una sola frente a else, se recurre a
englobarlas en un bloque entre llaves { ... }. Las sentencias dentro del bloque se
comportan como una sola y constituyen un mbito lxico. Los identificadores
definidos en su interior eclipsan a los exteriores y las variables automticas
creadas en l son destruidas al salir del mbito.

Sentencias de seleccin

Las sentencias de seleccin o de control de flujo, pueden decidir entre varios


cursos de accin distintos en funcin de ciertos valores. Existen dos tipos de estas
sentencias de seleccin: if...else ( 4.10.2) y switch ( 4.10.2).

Ejemplos:
switch ( foo() ) {
case 0: case 1:
if (first) break;
else ++x;
case 2:
...
default:
break;
}

Sentencias de iteracin

Las sentencias de iteracin permiten repetir un conjunto de sentencias ejecutando


un bucle. En C++ existen tres formas de iteraciones: los bucles while (

4.10.3), dowhile ( 4.10.3) y for ( 4.10.3).

Ejemplo:
while (first) {
...
for (int x = 1; x < y; ++x) {
...
do { // begin second
...
...
CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7
} while (second); // end second
...
} // end for
...
} // end first

2.6 Sentencias de salto

Las sentencias de salto permiten transferir el control del programa de forma


incondicional. Existen cuatro de estas sentencias: break ( 4.10.4), continue (

4.10.4), ( 4.10.4) y return ( 4.10.4).

Ejemplo:
while (foo) {
start:
if (some) break;
...
if (first) goto start;
...
if (second) continue;
...
if (! any) return;
...
}

Nota: en ocasiones es posible utilizar el mecanismo de excepciones C++


como mecanismo de salto multinivel ( 1.6).

Sentencias de declaracin

Este tipo de sentencias introducen uno o ms identificadores en un bloque.


Ejemplo:
void foo (int x, y z) {
float f = 3.14;
char c;
int x;
...
}
El asunto es tratado extensamente en el captulo "Declaraciones y definiciones" (
4.1.2).

CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7


Bloques de intento

Estas sentencias deben estar seguidas de una sentencia catch y tienen la forma:
try {
...
}
Son utilizadas por el mecanismo de excepciones C++ y han sido expuestas con
detalle en el captulo correspondiente ( 1.6)

Sentencias de preproceso

Como se ha indicado, constituyen un tipo muy especial, tanto en su sintaxis como


en su comportamiento. No representan una computacin en tiempo de ejecucin
(runtime), sino de compilacin, ya que su efecto es realizar modificaciones sobre
el cdigo fuente [1]. Su sintaxis tambin es especial; no requieren el punto y coma
de terminacin y comienzan siempre con el smbolo # ( 4.9.10).

Sentencias ensamblador

C++ dispone de la opcin de poder escribir directamente instrucciones en lenguaje


ensamblador junto con el resto del cdigo fuente. Para esto dispone de una
palabra clave especfica: asm.
La palabra asm indica que la cadena literal que sigue ser incluida en el cdigo
objeto en la posicin indicada.
La sintaxis empleada depende del compilador. En el caso de C++Builder, es la
siguiente:
asm <opcode> <operandos> <; o NL>
Ejemplo
asm pop dx;
asm push ebx;
asm call @@std@%basic_ostream$c19std@%char_traits$c%%@put$qc;
asm add esp,8;
asm push ebx;
Se permite que varias instrucciones ensamblador pueden ser agrupadas en un
solo bloque precedido por el indicador asm. Ejemplo:
asm {
mov ax, 0x0e07;
xor bx, bx;
int 0x10;
}

CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7


Tipos de datos C++ numricos enteros
El tipo de dato numrico entero es un subconjunto finito de los nmeros enteros
del mundo real. Pueden ser positivos o negativos.
En C++ los tipos de datos numricos enteros son los siguientes:
Nmero de
Tipo de Dato Descripcin Rango
bytes tpico
short Entero corto 2 -32768 a 32767
-2147483648
int Entero 4
a +2147483647
-2147483648
long Entero largo 4
a +2147483647
char Carcter 1 -128 a 127

Con los tipos enteros pueden utilizarse los calificadores signed y unsigned.
Estos calificadores indican si el nmero tiene signo o no. Si se usan solos, sin
indicar el tipo de dato se asume int.
Por ejemplo, las siguientes declaraciones son equivalentes:
unsigned int x; equivale a: unsigned x;
Usando estos calificadores podemos tener los siguientes tipos enteros:
Nmero de
Tipo de Dato Descripcin Rango
bytes tpico
signed short Entero corto 2 -32768 a 32767
unsigned Entero corto sin
2 0 a 65535
short signo
signed int Entero 4 -2147483648 a +2147483647
unsigned int Entero sin signo 4 0 a 4294967295
signed long Entero largo 4 -2147483648 a +2147483647
Entero largo sin
unsigned long 4 0 a 4294967295
signo
signed char Carcter 1 -128 a 127
unsigned
Carcter sin signo 1 0 a 255
char
Podemos ver que los datos enteros de tipo signed son equivalentes a los enteros
sin utilizar el calificador:
signed int a; es equivalente a escribir int a;

Tipos de datos numricos reales

CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7


El tipo de dato numrico real es un subconjunto finito de los nmeros reales.
Pueden ser positivos o negativos.
En C++ los tipos de datos numricos reales son los siguientes:
Tipo de Nmero de
Descripcin Rango
Dato bytes tpico
Real (Nmero en Positivos: 3.4E-38 a 3.4E38
float 4
coma flotante) Negativos: -3.4E-38 a -3.4E38
Real doble(Nmero
Positivos: 1.7E-308 a 1.7E308
double en coma flotante de 8
Negativos: -1.7E-308 a -1.7E308
doble precisin)
Positivos: 3.4E-4932 a 1.1E4932
long Negativos: -3.4E-4932 a
Real doble largo 10
double -1.1E4932

Tipo lgico
Los datos de este tipo slo pueden contener dos valores: true false (verdadero
falso).
Si se muestran como enteros, el valor true toma el valor 1 y false el valor 0.
Tipo de Nmero de
Descripcin Rango
Dato bytes tpico
bool Dato de tipo lgico 1 0, 1

Tipo carcter extendido


Este tipo se utiliza para representar caracteres UNICODE. Utiliza 2 bytes a
diferencia del tipo char que solo utiliza 1.
Tipo de Nmero de
Descripcin Rango
Dato bytes tpico
wchar_t Carcter Unicode 2 0 a 65535

Qu son las condiciones?


Un condicional, permite establecer una serie de condiciones al interior de nuestro
programa, que nos ayudan a determinar que acciones llevar cabo dadas ciertas
circunstancias, por ejemplo si queremos decidir cundo dar acceso a un usuario,
dependiendo de si el nombre de usuario y contrasea son correctos, para algo
como esto, es til un condicional, nos permite verificar si determinada condicin se
CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7
cumple (en este caso si la contrasea y el nombre de usuario son correctos) y de
acuerdo a que se cumpla o no, llevar a cabo un conjunto de acciones. Los
condicionales aumentan la "expresividad" de un software, es decir nos permiten
considerar diferentes situaciones con antelacin, evitando o permitiendo sortear
diferentes tipos de situaciones que son del inters de nuestra aplicacin.
Existen tres sentencias condicionales en C, if, else, y else if:

-Sentencia if: Esta sentencia permite la ejecucin de un bloque de cdigo, si y


solo si, se ha cumplido la condicin dentro del "if", si no se cumpli la condicin, se
pasa a las instrucciones que estn fuera del "if".
if(condicin a evaluar) //Por ejemplo 50 <= 10
{
....
....
Bloque de Instrucciones si se cumple la condicin
....
....
.... }
else
{
....
.... Bloque de Instrucciones si NO se cumple la condicin
....
....
....
}

-Sentencia else: En esta sentencia no se plantea directamente una condicin, es


mas bien, una respuesta a la condicin que se formulo dentro de la sentencia "if".
Si la condicin de "if" no se cumpli, entonces se ejecuta el bloque de cdigo que
contenga la sentencia "else".
Adems, no puedo haber una sentencia "else" sin su respectiva sentencia "if"

Debemos entonces determinar cul va a ser nuestra condicin a evaluar, en este


ejemplo, la condicin debe ser que la contrasea, sea idntica a la establecida en
nuestro sistema, veamos entonces como realizar esto:

string password = "";


cout << "Ingrese la contrasenia: ";
cin >> password;
if(password == "myClave")
{
cout << "Contrasenia correcta. Bienvenido";
}
else
CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7
{
cout << "Contrasenia incorrecta.";
}

-Sentencia else if o else colgante: Esta sentencia es parecida a "else", con la


diferencia de que en sta si se evala una condicin. Si la condicin de un "if"
anterior a "else if" no se cumpli, entonces se evala la condicin de "else if", en
caso de que no se cumpla la condicin de la sentencia "else if", se ejecutara el
siguiente bloque de cdigo que este fuera de "else if".
De nuevo, no puede existir un "else if", sin que exista un "if" antes de l.

Por ejemplo, el siguiente cdigo debe mostrar a es mayor que b, a es igual que
b o a es menor que b:
<?php
if ($a > $b) {
echo "a es mayor que b";
} elseif ($a == $b) {
echo "a es igual que b";
} else {
echo "a es menor que b";
}
?>

Qu son los ciclos?


Un ciclo o bucle permite repetir una o varias instrucciones cuantas veces lo
necesitemos, por ejemplo, si quisiramos escribir los nmeros del uno al cien no
tendra sentido escribir cien lneas mostrando un numero en cada una, para esto y
para muchsimas cosas ms, es til un ciclo, permitindonos hacer una misma
tarea en una cantidad de lneas muy pequea y de forma prcticamente
automtica.

El ciclo FOR se utiliza cuando tenemos claro un punto de inicio y un punto de

finalizacin. Por ejemplo si deseamos imprimir los nmeros pares entre el 20 y el

36, haramos algo como lo siguiente:

for(int k = 20; k <= 36; k++)


(k % 2 == 0)? printf("%d\n", k): continue;

CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7


En el cdigo anterior vemos que si el residuo de la divisin del nmero K entre 2

es igual a cero, entonces el nmero es par y se imprime dicho nmero, caso

contrario decimos que el bucle FOR se ejecute con el siguiente valor de K.

El bucle WHILE, a diferencia del FOR, se utiliza cuando no sabemos cuando

finalizar una condicin dada, un claro ejemplo puede ser cuando el usuario quiere

continuar haciendo algo en repetidas ocasiones hasta que pulse la tecla 'n'.

char val = 's';

while(val == 's')
{
printf("Deseas continuar? s/n: ");
scanf("%c", &val);
}

En este pequeo cdigo el programa le preguntar al usuario si desea continuar, a

menos que ste presione la tecla 'n', el programa le preguntar infinitas veces.

El bucle DO WHILE es casi igual al anterior, con la diferencia de que la condicin

dada se ejecuta al menos una vez. Siguiendo con el ejemplo anterior, qu

pasara si la variable val tuviera otro valor, por ejemplo char val = 'z'? Simplemente

el ciclo WHILE jams se ejecutara porque no se cumple la condicin de que val

tenga un valor s; entonces con el bucle DO WHILE hacemos que el cdigo entre

llaves se ejecute al menos una vez.

char val = 'z';

do
{
printf("Deseas continuar? s/n");
scanf("%c", &val);
}

CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7


while(val == 's');

Como vemos, el cdigo se ejecutar solamente una vez si el usuario introduce un

valor distinto a 's', en otro caso el cdigo se ejecutar indefinidamente hasta que el

usuario pulse una tecla que no sea 's'.

Qu son los operadores?

CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7


Un operador es un elemento de programa que se aplica a uno o varios operandos
en una expresin o instruccin. Los operadores que requieren un operando, como
el operador de incremento se conocen como operadores unarios. Los operadores
que requieren dos operandos, como los operadores aritmticos (+,-,*,/) se
conocen como operadores binarios. Un operador, el operador condicional (?:),
utiliza tres operandos y es el nico operador ternario de C++ [1]. Existen 6 tipos de
operadores segn su funcin, que son aritmticos, relacionales, de asignacin,
lgicos, de direccin y de manejo de Bits.

CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7


Sistema de numeracin binario.
El sistema de numeracin binario utiliza slo dos dgitos, el cero (0) y el uno (1).
En una cifra binaria, cada dgito tiene distinto valor dependiendo de la posicin que
ocupe. El valor de cada posicin es el de una potencia de base 2, elevada a un
exponente igual a la posicin del dgito menos uno. Se puede observar que, tal y
como ocurra con el sistema decimal, la base de la potencia coincide con la
cantidad de dgitos utilizados (2) para representar los nmeros.
De acuerdo con estas reglas, el nmero binario 1011 tiene un valor que se calcula
as:

1*23 + 0*22 + 1*21 + 1*20 , es decir:

8 + 0 + 2 + 1 = 11

y para expresar que ambas cifras describen la misma cantidad lo escribimos as:

10112 = 1110

Conversin entre nmeros decimales y binarios


Convertir un nmero decimal al sistema binario es muy sencillo: basta con
realizar divisiones sucesivas por 2 y escribir los restos obtenidos en cada
divisin en orden inverso al que han sido obtenidos.
Por ejemplo, para convertir al sistema binario el nmero 7710 haremos una serie de
divisiones que arrojarn los restos siguientes:
77 : 2 = 38 Resto: 1
38 : 2 = 19 Resto: 0
19 : 2 = 9 Resto: 1
9 : 2 = 4 Resto: 1
4 : 2 = 2 Resto: 0
2 : 2 = 1 Resto: 0
1 : 2 = 0 Resto: 1
y, tomando los restos en orden inverso obtenemos la cifra binaria:

7710 = 10011012
Conversin de binario a decimal
El proceso para convertir un nmero del sistema binario al decimal es an ms
sencillo; basta con desarrollar el nmero, teniendo en cuenta el valor de cada
CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7
dgito en su posicin, que es el de una potencia de 2, cuyo exponente es 0 en el
bit situado ms a la derecha, y se incrementa en una unidad segn vamos
avanzando posiciones hacia la izquierda.
Por ejemplo, para convertir el nmero binario 10100112 a decimal, lo
desarrollamos teniendo en cuenta el valor de cada bit:

1*26 + 0*25 + 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 83

10100112 = 8310
Sistema de numeracin octal
El inconveniente de la codificacin binaria es que la representacin de algunos
nmeros resulta muy larga. Por este motivo se utilizan otros sistemas de
numeracin que resulten ms cmodos de escribir: el sistema octal y el sistema
hexadecimal. Afortunadamente, resulta muy fcil convertir un nmero binario a
octal o a hexadecimal.
En el sistema de numeracin octal, los nmeros se representan
mediante ocho dgitos diferentes: 0, 1, 2, 3, 4, 5, 6 y 7. Cada dgito tiene,
naturalmente, un valor distinto dependiendo del lugar que ocupen. El valor de cada
una de las posiciones viene determinado por las potencias de base 8.
Por ejemplo, el nmero octal 2738 tiene un valor que se calcula as:

2*83 + 7*82 + 3*81 = 2*512 + 7*64 + 3*8 = 149610

2738 = 149610

Conversin de un nmero decimal a octal


La conversin de un nmero decimal a octal se hace con la misma tcnica que ya
hemos utilizado en la conversin a binario, mediante divisiones sucesivas por 8 y
colocando los restos obtenidos en orden inverso. Por ejemplo, para escribir en
octal el nmero decimal 12210 tendremos que hacer las siguientes divisiones:

122 : 8 = 15 Resto: 2
15 : 8 = 1 Resto: 7
1:8=0 Resto: 1
Tomando los restos obtenidos en orden inverso tendremos la cifra octal:

12210 = 1728
Conversin octal a decimal

CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7


La conversin de un nmero octal a decimal es igualmente sencilla, conociendo el
peso de cada posicin en una cifra octal. Por ejemplo, para convertir el
nmero 2378 a decimal basta con desarrollar el valor de cada dgito:

2*82 + 3*81 + 7*80 = 128 + 24 + 7 = 15910

2378 = 15910
Sistema de numeracin hexadecimal
En el sistema hexadecimal los nmeros se representan con diecisis smbolos: 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. Se utilizan los caracteres A, B, C, D, E y F
representando las cantidades decimales 10, 11, 12, 13, 14 y 15 respectivamente,
porque no hay dgitos mayores que 9 en el sistema decimal. El valor de cada uno
de estos smbolos depende, como es lgico, de su posicin, que se calcula
mediante potencias de base 16.
Calculemos, a modo de ejemplo, el valor del nmero hexadecimal 1A3F16:

1A3F16 = 1*163 + A*162 + 3*161 + F*160

1*4096 + 10*256 + 3*16 + 15*1 = 6719

1A3F16 = 671910
Ensayemos, utilizando la tcnica habitual de divisiones sucesivas, la conversin
de un nmero decimal a hexadecimal. Por ejemplo, para convertir a hexadecimal
del nmero 173510 ser necesario hacer las siguientes divisiones:

1735 : 16 = 108 Resto: 7


108 : 16 = 6 Resto: C es decir, 1210
6 : 16 = 0 Resto: 6

De ah que, tomando los restos en orden inverso, resolvemos el nmero en


hexadecimal:

173510 = 6C716
6. Conversin de nmeros binarios a octales y viceversa
Observa la tabla siguiente, con los siete primeros nmeros expresados en los
sistemas decimal, binario y octal:
DECIMAL BINARIO OCTAL
0 000 0
1 001 1

CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7


DECIMAL BINARIO OCTAL
2 010 2
3 011 3
4 100 4
5 101 5
6 110 6
7 111 7

Cada dgito de un nmero octal se representa con tres dgitos en el sistema


binario. Por tanto, el modo de convertir un nmero entre estos sistemas de
numeracin equivale a "expandir" cada dgito octal a tres dgitos binarios, o en
"contraer" grupos de tres caracteres binarios a su correspondiente dgito octal.

Por ejemplo, para convertir el nmero binario 1010010112 a octal tomaremos


grupos de tres bits y los sustituiremos por su equivalente octal:

1012 = 58
0012 = 18
0112 = 38
y, de ese modo: 1010010112 = 5138
La conversin de nmeros octales a binarios se hace, siguiendo el mismo mtodo,
reemplazando cada dgito octal por los tres bits equivalentes. Por ejemplo, para
convertir el nmero octal 7508 a binario, tomaremos el equivalente binario de cada
uno de sus dgitos:

78 = 1112
58 = 1012
08 = 0002
y, por tanto: 7508 = 1111010002
7. Conversin de nmeros binarios a hexadecimales y viceversa
Del mismo modo que hallamos la correspondencia entre nmeros octales y
binarios, podemos establecer una equivalencia directa entre cada dgito
hexadecimal y cuatro dgitos binarios, como se ve en la siguiente tabla:

DECIMAL BINARIO HEXADECIMAL


0 0000 0
CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7
DECIMAL BINARIO HEXADECIMAL

1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

La conversin entre nmeros hexadecimales y binarios se realiza "expandiendo" o


"contrayendo" cada dgito hexadecimal a cuatro dgitos binarios. Por ejemplo, para
expresar en hexadecimal el nmero binario 101001110011 2bastar con tomar
grupos de cuatro bits, empezando por la derecha, y reemplazarlos por su
equivalente hexadecimal:

10102 = A16
01112 = 716
00112 = 316
y, por tanto: 1010011100112 = A7316

En caso de que los dgitos binarios no formen grupos completos de cuatro dgitos,
se deben aadir ceros a la izquierda hasta completar el ltimo grupo. Por ejemplo:
1011102 = 001011102 = 2E16
La conversin de nmeros hexadecimales a binarios se hace del mismo modo,
reemplazando cada dgito hexadecimal por los cuatro bits equivalentes de la tabla.
CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7
Para convertir a binario, por ejemplo, el nmero hexadecimal 1F616hallaremos en
la tabla las siguientes equivalencias:

116 = 00012
F16 = 11112
616 = 01102
y, por tanto: 1F616 = 0001111101102

CERVANTES HIDALGO MIGUEL GUSTAVO 1CV7

You might also like