ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática XDR (External Data Representation) Tipos y codificación.

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Curso de Java Capitulo 2: Introducción a Java Profesor:
Uso de variables de tipo valor
Lección 5 Introducción a las representaciones externas de datos
Desarrollo de Aplicaciones para Internet
Tema 2: Lenguaje PHP básico
Sintaxis básica del lenguaje
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Tipos de Datos.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Algoritmo y Estructura de Datos I
Tipos de datos y campos.
Ingeniero Anyelo Quintero
Introducción a lenguaje C
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
Conceptos Básicos de Java
Material Elaborado por: Lic. Saily González. CONTENIDO 2.1- Estructura de una Aplicación JAVA 2.2- Elementos básicos de la Programación JAVA Comentarios.
POO Java Módulo 3 Elementos de programas Identificadores
Tipos de Datos Básicos 1.
Diseño de algoritmos “Punteros”
Tema 9 Estructuras.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
UNIDAD V Arreglos y Cadenas
Numeric Types, Expressions, and Output
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
Tema 2: Los tipos de datos
Informática Ingeniería en Electrónica y Automática Industrial
Índice. Revisando conceptos acerca de la memoria.
Programación III Clase 08 Arreglos.
Variables y Shapes. Variables ► Lugares de la memoria que reciben un nombre ► En VB no es necesario declarar las variables  A=8 ► Se declaran con Dim.
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Informática Ingeniería en Electrónica y Automática Industrial
Sintaxis de C# (Declaraciones y Tipos)
Valor X Valor Y Punto (0,0) Coordenadas.
Programa Vespertino de Automatización Equipos y Sistemas de Control Digital Lenguaje C Profesor: Felipe Páez Mejías D e p a r t a m e n t o d e I n g e.
Unidad VI Registros (estructuras, uniones y enumeraciones)
Tipo de Datos Básicos.
© AutoresV1.1 Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C.
El lenguaje de programación C - Identificadores y variables – Isidro González Caballero ( Introducción.
Agosto 2010Programación I - Tipo de Datos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Universidad Nacional de Luján Licenciatura en Sistemas.
Tipos de campos de una base de datos Campos numéricos Fechas Campos de texto.
TIPOS DE DATOS TipoDescripciónRango IntegerEntero (2 bytes) a LongEntero largo (4 bytes) a SinglePunto flotante de simple.
El Lenguaje C++. Creación de programas simples de C++ Builder como ejercicios en C++. Los elementos de control fundamentales en C++, incluyendo operadores.
Resumen Fundamentos de Programación/ Programación I
Informática Ingeniería en Electrónica y Automática Industrial
Programación en C para electrónicos
Tema 2: Base de datos relacionales
Programación orientada a objetos. El método main es el comportamiento por el cual comienzan todos los programas en Java, de la misma forma en la que C,
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
PROGRAMACIÓN MULTIMEDIA
FUNDAMENTOS DE PROGRAMACIÓN
Estructura de un programa C
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
 Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad.
PRINCIPIOS DE PROGRAMACIÓN

Fundamentos de Programación
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
Lenguaje de programación c
Tipos de datos básicos en Java
EL TIPO DE DATO LOGICO y constantes.
ARREGLOS. La sintaxis para declarar e inicializar un array será: Tipo_de_variable[ ] Nombre_del_array = new Tipo_de_variable[dimensión]; También podemos.
Informática Ingeniería en Electrónica y Automática Industrial
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
Transcripción de la presentación:

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática XDR (External Data Representation) Tipos y codificación

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Características Tipos implícitos La codificación (big endian) ocupa siempre un tamaño múltiplo de 4 bytes (rellenando con ceros por la dcha) Se asume que la transmisión: –Preserva el contenido de cada byte –Preserva el orden de los bytes (el primero se numera con 0)

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Sintaxis genérica Muchos de los tipos simples tienen el mismo nombre que en C El usuario puede definir tipos complejos agregando tipos simples <> denota un número variable de datos en una secuencia [] denota un número fijo de datos en una secuencia

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Tipos simples: Entero Sintaxis: int identificador; Codificación –32 bits (4 bytes), negativos en C-2 –Rango: [ , ] –Ejemplo: -3 FF FD 0123 MSBLSB

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Tipos simples: Natural Sintaxis: unsigned int identificador; Codificación –32 bits (4 bytes) –Rango: [0, ] –Ejemplo: MSBLSB

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Tipos simples: Enumerados Sintaxis: enum identificador {nombre1=constante,...}; Ejemplo: enum colores { ROJO=1, AMARILLO=3, AZUL=5 }; Codificación –Como los enteros

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Tipos simples: Booleanos Sintaxis: bool identificador; Codificación –Equivalente a: enum bool {TRUE=1, FALSE=0};

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Tipos simples: Hiperenteros Sintaxis: hyper identificador; Codificación –64 bits (8 bytes) –Rango: [-2 63, ] –Ejemplo: -3 FF 0123 MSB FF FD 4567 LSB

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Tipos simples: Hiperenteros sin signo Sintaxis: unsigned hyper identificador; Codificación –64 bits (8 bytes) –Rango: [0, ] –Ejemplo: MSB LSB

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Tipos simples: Reales (precisión simple) Sintaxis: float identificador; Codificación –32 bits (4 bytes) –Coma flotante, norma IEEE-754 –Ejemplo: +1 3F MSBLSB

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Tipos simples: Reales (precisión doble) Sintaxis: double identificador; Codificación –64 bits (8 bytes) –Coma flotante, norma IEEE-754, precisión ampliada. BFF MSB LSB -1 

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Tipos simples: Constantes Sintaxis: const identificador=valor; Codificación –La del tipo asociado al valor. –Ejemplo: const MAX_CLIENTES=5;

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Tipo opaco Secuencia de n bytes sin significado especial para XDR. Opaco de longitud fija: –Sintaxis: opaque identificador[n]; –Codificación Byte 0Byte 1Byte 2...Byte n n bytes relleno Múltiplo de 4

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Tipo opaco Opaco de longitud variable: –Sintaxis: opaque identificador ; m especifica el tamaño maximo ( n  m ) Puede omitirse (pero no las <>) –Codificación: Primero se envia el número n de bytes, y despues sus valores Byte 0Byte 1...Byte n n bytes relleno Múltiplo de 4 Valor de n (natural) 4 bytes

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Datos estructurados Cadenas de texto Arrays –De longitud fija –De longitud variable Estructuras Uniones discriminadas Datos opcionales

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Cadenas de texto Una cadena es una secuencia de n códigos ASCII Sintaxis: string identificador ; m especifica el tamaño maximo de la cadena ( n  m ). Puede omitirse (pero no las <>) Codificación: como los opacos Ejemplo: string txt ; inicializado con el texto “ Cadena ” bytes = “Cadena”relleno Múltiplo de 4 4 bytes n= E61

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Arrays Un array es una secuencia de n datos del mismo tipo. Array de longitud fija. –Sintaxis nombre_tipo identificador[n] –Codificación: Elemento 0... n elementos Elemento 1Elemento n-1

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Arrays Arrays de longitud variable –Sintaxis nombre_tipo identificador m es el número máximo de elementos. Puede omitirse (pero no las <>) –Codificación: Se envía primero el número n de elementos (dato entero), y despúes los elementos. Elemento 0... n elementos Elemento 1Elemento n-1Valor de n 4 bytes

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Estructuras Sintaxis struct identificador { declaracion_componente_A; declaracion_componente_B;... declaracion_componente_X; } Codificación: –Cada componente se codifica según su tipo y se envían en secuencia. Componente A...Componente BComponente X

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Estructuras: ejemplo struct prueba { int x; float y; string z ; }; Se carga campo x con 2534h, campo y con 12.5, campo z con “ Cadena ” Codificación: E6100 xyz

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Uniones discriminadas Permiten “elegir” el tipo del dato, mediante un discriminante Sintaxis union identificador switch(declaración discriminante){ case valor1: declaración caso1; case valor2: declaración caso2;... default: declaración caso defecto; } Codificación: Valor del discriminante (X) 4 bytes Codificación del casoX

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Uniones discriminadas: Ejemplos union ejemplo switch(int q){ case 1: int x; case 2: float y; case 3: double z; default: string txt ; }; Inicialización: q con 1 x con 0x int4 bytes q=

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Uniones discriminadas: Ejemplos union ejemplo switch(int q){ case 1: int x; case 2: float y; case 3: double z; default: string txt ; }; Inicialización: q con 2 y con float4 bytes q=2 4800

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Uniones discriminadas: Ejemplos union ejemplo switch(int q){ case 1: int x; case 2: float y; case 3: double z; default: string txt ; }; Inicialización: q con 3 z con double4 bytes q=3 2900

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Uniones discriminadas: Ejemplos union ejemplo switch(int q){ case 1: int x; case 2: float y; case 3: double z; default: string txt ; }; Inicialización: q con 27 txt con “ Cadena ” 4 bytes 00 1B q=27 4 bytes longitud cadena bytes = “Cadena”relleno E61

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Casos vacíos: void El tipo void permite especificar un dato vacío (inexistente). Este tipo no tiene codificación. Ejemplo: union ejemplo switch(int q){ case 1: int x; case 2: float y; case 3: double z; default: void; }; Si q vale 8 4 bytes q=8 No hay dato después

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Datos opcionales Pueden llevar información o estar vacíos Sintaxis tipo *identificador; Codificación: –Si no hay dato se codifica el entero 0 –Si hay dato, se codifica el entero 1 seguido de la codificación del dato 4 bytes 00 4 bytes 00 01Codficación dato

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Datos opcionales: uso Uso: codificar punteros cuyo valor puede ser NULL (no hay dato) o bien apuntan a un dato. Aplicación típica: estructuras recursivas (listas, árboles...) Ejemplo: struct lista { string cadena<>; lista *otra; };

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Datos opcionales: ejemplo struct lista { string cadena<>; lista *otra; }; cadena: “Una” otra: NULL 4 bytes longitud cadena 5500 “Una” relleno 6E6100 ¿Otra? NO

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Datos opcionales: ejemplo struct lista { string cadena<>; lista *otra; }; cadena: “dos” otra: NULL cadena: “Una” otra: 4 bytes longitud cadena “Una” relleno 6E6100 ¿Otra? SI 4 bytes longitud 6400 “dos” relleno 6F7300 ¿Otra? NO

ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática Tipos definidos por el usuario La palabra typedef delante de una declaración permite dar nombres a los tipos. Ejemplo: typedef int huevo; typedef huevo huevera[12]; –En lo sucesivo, huevera equivale a un array de 12 enteros.