Representacion de Bajo Nivel y Alto Nivel de Datos
-
Upload
rikudouriis -
Category
Documents
-
view
1.812 -
download
27
Transcript of Representacion de Bajo Nivel y Alto Nivel de Datos
REPRESENTACIÓN DE BAJO NIVEL Y ALTO NIVEL DE DATOS.
Introducción
Un lenguaje de programación es un idioma artificial diseñado para expresarcomputaciones que pueden ser llevadas a cabo por máquinas como las computadoras.Pueden usarse para crear programas que controlen el comportamiento físico y lógico deuna máquina, para expresar algoritmos con precisión, o como modo de comunicaciónhumana. Está formado de un conjunto de símbolos y reglas sintácticas y semánticas quedefinen su estructura y el significado de sus elementos y expresiones.
En este tema aplicaremos solamente caracteres para poder armar nuestro programa.
Las constantes enteras representan un int, y pueden estar expresadas en los sistemasde numeracion decimal octal o hexadecimal. En ausencia de ningún sufijo, el tipo de unaconstante entera se deduce de su valor según se muestra en las tablas que sigue:Observese que las reglas para las constantes decimales son distintas del resto.
Decimal: se permiten constantes enteras en formato decimal dentro del rango 0 a4,294,967,295; las que excedan este limite serán truncadas. Obsérvese que lasconstantes decimales no puedan comenzar con 0, porque serian interpretadas comooctales.
int i = 10; // decimal 10Int i =010; // decimal 8 (octal 10)
Int i=0; // decimal 0 = octal 0
Tipos adoptados por las constantes decimales en función del valor declarado (enausencia de sufijos L o U)
0 a 32,767 Int32,768 a 2,147,483,647 Long
2,147,483,648 a 4294967295 Unsigned long>4294967295 Truncado
Octal
Todas las constantes que empiecen por 0 se suponen en octal. Si una constante de estetipo contiene digitos ilegales (8 o 9), se produce un mensaje de error; como se indica enla tabla adjunta, las que exceden del valor máximo 037777777777 son truncadas.
Tipos adoptados por las constantes octales en función del valor declarado ( en ausenciade sufijos L o U).
00 a 077777 int010000 a 0177777 Unsigned int
02000000 a 017777777777 Long020000000000 a 017777777777 Unsigned long
>037777777777 truncado
Hexadecimal
Cualquier constante que comience po 0x o 0X es considerada hexadecimal, después sepuede incluir los digitos validos (0…9, a…f, A…F). como se indica en el cuadro adjunto,las que excedan del valor máximo 0*FFFFFFFF son truncadas.
Tipos adoptados por las constantes hexadecimales en función del valor declarado ( enausencia de sufijos L o U).
0*0000 a 0*7FFF int0*8000 a 0*FFFF Unsigned int
0*10000 a 0*7FFFFFFF Long0*80000000 a 0*FFFFFFFFF Unsigned long
>0*FFFFFFFF truncado
Una constante carácter es uno o mas caracteres delimitados por comillas simples,como ‘A’, ‘+’, o ‘\n’. en c++, son de un tipo especifico: char del que existen 2 versiones,signed y unsigned. El valor por defecto, el que se supone cuando no se indica nada enconcreto ( char a secas depende del compilador, pero puede ser seleccionado.
Los 3 tipos char
Las constantes de un carácter, tales como ‘A’,’\t’ y ‘007’, son representados comovalores enteros, int (signed). En estos casos, si el valor es mayor que 127, el bit masalto es puesto a-1 (=0*FF), es decir, las constantes carácter cuyo valor ASCII es mayorde 127 se representan como numeros negativos, aunque esto puede ser desactivadodeclarando que los caracteres son unsigned por defecto.
Cualquiera de los 3 tipos carácter, char, signed char y unsigned char, se almacenan en8-bits (un byte).
En los programas a c++, una función puede ser sobrecargada con argumentos decualquiera de los 3 tipos: char, signed char y unsigned char (porque son tipos distintospara el compilador). Por ejemplo, los siguientes prototipos de funciones son validos ydistintos:
void func (char ch);void fun.(signed char ch);void func(unsigned char ch);
Constantes reales
Estas se conforman por una parte entera, seguida por un punto decimal y una partefraccionaria . se permite la notacion científica, en cuyo caso se añade el valor una e oE, seguida por un exponente positivo o negativo.
parte entera.parte fraccionaria
De lo anterior, decimos que los digitos representan 0 o mas digitos del 0 al 9 y E o e esel símbolo de exponente de la base 10 que puede ser positivo o negativo
. Si la constante real es positiva no es necesario especificar el signo esnegativa lleva el signo (-).
Ejemplos:-17.24 y 17.244283
una constante real tiene tipo double, a menos que se introduzca en ella una f o F yaque en tal caso indicara que es de tipo flotante o una l o L que indicara que es un tipode long double.
El tipo real consiste en un subconjunto de los numeros reales. Los numeros realessiempre tienen un punto decimal y pueden ser positivos o negativos. Un numero realconsta de un entero y una parte decimal.
Ejemplo de representacionde alto y bajo nivel
#include<iostream.h>#include<string.h>#include<conio.h>
int main(){char cadena[100];char *pcad;char *pcad2;
int longitud=0;
cout<<"Dame una cadena"<<endl;cin.getline(cadena,100);
pcad=cadena;longitud= cadena;pcad2= pcad+(longitud-1);
while(pcad2!=pcad){cout<<pcad2<<endl;pcad2--;}cout<<*pcad<<endl<<endl;returno 0;}