Representación de la Información (III)

Documentos relacionados
Agenda. 0 Operaciones aritméticas 0 ASCII 0 UTF-8 0 Código Gray. 0 Números de punto flotante

Intérpretes. Programación de Sistemas. Representación (1/n) Representación (2/n) Ejemplo

Organización del Computador 1. Representación de reales Representación de caracteres

UT01 03 Sistemas de codificación

IDENTIFICADOR.NET NOMBRE DESCRIPCION

Represent. Información. Caracteres Alfanuméricos

INFORMÁTICA APLICADA A LA ECONOMÍA Tema 3: Representación de la Información. Verónica A. Bollati

Representación de la Información en los Sistemas Digitales

Observa que el mismo contiene el espacio en blanco, SP, y el retorno de carro o carácter de nueva línea, CR.

Representación de la Información.... en los Computadores

Representación Información

Tema IV. Manejo Interno de Datos

03 Cadenas en Python 3. Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales

1. REPRESENTACION DE DATOS

Representación de la Información (I)

Representación digital de la información

Lección 6 Codificación de caracteres

Tema 1. Informática Básica

Representación de Números

Otras aplicaciones importantes de la capa de presentación Capa de presentación

Informática I. Bases de Numeración. Alejandro Furfaro

Implantación de Sistemas Operativos 1º ASIR

Numeración Maya. Numeración indo-arábiga. Sistemas de Numeración Posicional. Conversión de una base cualquiera a base 10 = 4! !

TEMA V SISTEMAS DE NUMERACIÓN

PRÁCTICA MANEJO INTERNO DE DATOS. Objetivos

Informática Básica: Representación de la información

Organización del Computador 1. Representación binaria de Números Reales Sistemas de Representación

2. Representación de la información

Representación digital de la información

Organización del Computador 1. Representación binaria de Números Reales Sistemas de Representación

Arquitectura de Computadoras

Sistemas de numeración

Fundamentos de la programación

Sistemas numéricos - otras representaciones - Taller de programación

Área Académica: Ingeniería en Computación. Profesor: M. en C. Evangelina Lezama León

APUNTES DE CATEDRA: SISTEMAS DE NUMERACION - REPRESENTACION INTERNA DE NUMEROS Y CARACTERES

Práctica 1: Representación de números enteros

Tema 2: Sistemas de numeración

Datos Elementales y formato de un programa en Java

Códigos Binarios de Representación de Datos

SISTEMAS DIGITALES. Margarita Pérez Castellanos

Práctica 1: Representación de números enteros

Representación de la Información

Fundamentos de Programación. El Sistema de Numeración Binario. Fundamentos de Programación. Página 02.0 de 44

CURSO 2016/2017 INFORMÁTICA 1ºBCH. La codificación es. Por qué se. Fíjate en. la imagen de decirle que si. cero. decimal: 1* *2 3.

TEMA II SISTEMAS DE NUMERACIÓN USUALES EN INFORMÁTICA.

Entrada/Salida. Introducción a la computación. Juan Manuel Pérez. (en base a slides de Maximiliano Geier) 04/05/2016

TEMA 1. Informática básica. Introducción. 1.1 Informática básica

ELO320 Estructuras de Datos y Algoritmos. Codificación Binaria. Tomás Arredondo Vidal

A veces queremos almacenar algún elemento que es Verdadero o Falso. Este tipo de dato se llama Booleano y su representación es sencilla, para cada

TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN

Tema 3. Aritmética y representación de la información en el ordenador. Informática Grado en Física Universitat de València

Técnicas y Dispositivos Digitales 1. UNIDAD 3 Códigos Binarios

Notas de Teórico. Representación Interna de Datos

El almacenaje de información numérica en una computadora digital

Definición(2) La base (r) de un sistema de numeración especifica el número de dígitos o cardinal* de dicho conjunto ordenado. Las bases más utilizadas

Representación de la Información en un computador. Ingeniería de Sistema y Automática Universidad de Valladolid

Para simplificar el manejo de los estados se dio el siguiente acuerdo: Cuando el circuito se encuentra Activo se dará un valor de 1 (uno).

Unidad 2. La Información en los Ordenadores

Conceptos previos. Revisión de Sistemas Lógicos Formatos Numéricos. Dpto. Ingeniería Electrónica y Comunicaciones

TIC I.E.S. Antigua Sexi Curso 16/17

Colegio Diocesano San José de Carolinas

UNIDAD I CONCEPTOS GENERALES. Conceptos Generales Microprocesadores Otoño 2011

Práctica 1: Representación de números

Tema 2: Sistemas de numeración

Escuela de Educación Secundaria Técnica Nº 6 de la Matanza Laboratorio de Sistemas Operativos de 4º año Ciclo Superior Informática Capítulo 1

Comunicación y representación de la información

Organización de Computadoras. Clase 2

5. Codificación n de información en binario

Pr. Dr. Xavier Bonnaire

Representación de la información

Unidad 1) Lenguajes de marcas

CODIFICACIÓN INTERNA DE LA INFORMACIÓN

Fundamentos de Informática E.U.P. Universidad de Sevilla

Introducción al PLC Simatic Siemens S7-200.

Java-Apen-G 3/31/01 12:29 PM Page Unicode. Objetivos

UF 6.2 Disseny per a multimedia interactiu. Módulo 6

Capacidad : Número de valores diferentes que puede representar un código. Depende del número de dígitos usados.

Contenido. Introducción a los Computadores Conceptos básicos. Sistema de numeración CNM-130

Datos y tipos de datos

El ordenador. Codificación binaria. Código ASCII

Tema 2. Sistemas de representación de la información

Empecemos! Los números, los carácteres y la computadora. Universidad de la Experiencia UZ 03/02/2016. Francisco José Serón Arbeloa 1

Sistemas Digitales. Pablo Abad Pablo Prieto Torralbo. Tema 2. Números Naturales y Enteros. Departamento de Ingeniería Informá2ca y Electrónica

Intermediación Demandas

Tema 2. Soporte Lógico de los Ordenadores

Tema 1. Informática Básica 1.1 Introducción 1.2 Informática Básica 1.3 El ordenador. Fundamentos estructurales y de funcionamiento

Capítulo 8. Capa de Presentación 8.1 Representaciones comunes de los datos ASCII 7 bits ASCII 8 bits Unicode

Definición. Vista general.

Tecnología Multimedia

Notas de Teórico. Representación Interna de Datos

4. Representación interna de la información

TRABAJO PRACTICO Nº 1 Traductor ASCII / BASE64

Informática Básica. 2º Diplomatura en Ciencias Empresariales Universidad Pública de Navarra. Informática Básica, DCE-UPNA 1

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

banda, mayor es la distorsión, y mayor es la probabilidad de que se cometan errores en el receptor.

Centros de actividad. Sede Central Portal del Rey 20, Bajo Vitoria-Gasteiz. Tel: Fax:

print() open() with del

Transcripción:

Representación de la Información (III) Representación de Caracteres Maximiliano Geier 10/04/2015 Maximiliano Geier Representación de la Información (III) 10/04/2015 1 / 14

Representación de caracteres La memoria contiene bits, ceros y unos dispuestos en algún orden que se pueden interpretar de diferentes formas. Hasta ahora estuvimos viendo distintas maneras de representar números. Cómo hacemos para guardar en memoria la cadena de caracteres icb2015? Maximiliano Geier Representación de la Información (III) 10/04/2015 2 / 14

ASCII Respuesta 1: ASCII (American Standard for Information Interchange 1963) Maximiliano Geier Representación de la Información (III) 10/04/2015 3 / 14

EBCDIC Respuesta 1 bis: EBCDIC (Extended Binary Coded Decimal Interchange Code 1963, IBM) Maximiliano Geier Representación de la Información (III) 10/04/2015 4 / 14

EBCDIC Respuesta 1 bis: EBCDIC (Extended Binary Coded Decimal Interchange Code 1963, IBM) Problema: y si quiero representar la cadena de caracteres María Elena? Maximiliano Geier Representación de la Información (III) 10/04/2015 4 / 14

ISO-8859-1 (Latin-1) Respuesta 2: Latin-1 Maximiliano Geier Representación de la Información (III) 10/04/2015 5 / 14

ISO-8859-1 (Latin-1) Respuesta 2: Latin-1 Y ahora si quiero codificar 你什么名字? Maximiliano Geier Representación de la Información (III) 10/04/2015 5 / 14

Unicode Para unificar la codificación de caracteres en todas las lenguas del mundo se definió un standard, llamado Unicode, que establece una numeración uniforme para 113.021 caracteres (versión 7.0, Junio 2014) en 123 scripts diferentes Maximiliano Geier Representación de la Información (III) 10/04/2015 6 / 14

Unicode Para unificar la codificación de caracteres en todas las lenguas del mundo se definió un standard, llamado Unicode, que establece una numeración uniforme para 113.021 caracteres (versión 7.0, Junio 2014) en 123 scripts diferentes A esta lista de caracteres se la conoce como UCS (Universal Character Set) Maximiliano Geier Representación de la Información (III) 10/04/2015 6 / 14

Unicode Para unificar la codificación de caracteres en todas las lenguas del mundo se definió un standard, llamado Unicode, que establece una numeración uniforme para 113.021 caracteres (versión 7.0, Junio 2014) en 123 scripts diferentes A esta lista de caracteres se la conoce como UCS (Universal Character Set) Algunos scripts incluidos: Árabe, Armenio, Bengaĺı, Bopomofo, Cirílico, Devanagari, Georgiano, Griego, Gujarati, Gurmukhi, Hangul, Hebreo, Hiragana, Kannada, Katakana, Lao, Latín, Malayo, Oriya, Tamil, Telugu, Thai, Tibetano, CJK (chino, japonés y coreano), Sánscrito védico, Javanés, Khmer, Mongol, Tibetano, Braille, Runas, Klingon, etc. Maximiliano Geier Representación de la Información (III) 10/04/2015 6 / 14

Unicode Para unificar la codificación de caracteres en todas las lenguas del mundo se definió un standard, llamado Unicode, que establece una numeración uniforme para 113.021 caracteres (versión 7.0, Junio 2014) en 123 scripts diferentes A esta lista de caracteres se la conoce como UCS (Universal Character Set) Algunos scripts incluidos: Árabe, Armenio, Bengaĺı, Bopomofo, Cirílico, Devanagari, Georgiano, Griego, Gujarati, Gurmukhi, Hangul, Hebreo, Hiragana, Kannada, Katakana, Lao, Latín, Malayo, Oriya, Tamil, Telugu, Thai, Tibetano, CJK (chino, japonés y coreano), Sánscrito védico, Javanés, Khmer, Mongol, Tibetano, Braille, Runas, Klingon, etc. Unicode establece el mapa de caracteres, pero no cómo se codifican. Cómo hacemos? Maximiliano Geier Representación de la Información (III) 10/04/2015 6 / 14

UCS y UTF UCS define una manera de codificar los caracteres, utilizando el número del mismo en el mapa. Para esto necesitamos al menos 17 bits (2 17 = 131072). Las codificaciones de UCS son de longitud fija, se indica en el nombre la cantidad de bytes de la codificación. Maximiliano Geier Representación de la Información (III) 10/04/2015 7 / 14

UCS y UTF UCS define una manera de codificar los caracteres, utilizando el número del mismo en el mapa. Para esto necesitamos al menos 17 bits (2 17 = 131072). Las codificaciones de UCS son de longitud fija, se indica en el nombre la cantidad de bytes de la codificación. Inicialmente UCS-2, luego UCS-4. Maximiliano Geier Representación de la Información (III) 10/04/2015 7 / 14

UCS y UTF UCS define una manera de codificar los caracteres, utilizando el número del mismo en el mapa. Para esto necesitamos al menos 17 bits (2 17 = 131072). Las codificaciones de UCS son de longitud fija, se indica en el nombre la cantidad de bytes de la codificación. Inicialmente UCS-2, luego UCS-4. Problema: el texto hola mundo se codificaría en UCS-4 como: 00 00 00 68 00 00 00 6F 00 00 00 6C 00 00 00 61 00 00 00 20 00 00 00 6D 00 00 00 75 00 00 00 6E 00 00 00 64 00 00 00 6F Mientras que en ASCII la codificación es: 68 6F 6C 61 20 6D 75 6E 64 6F Maximiliano Geier Representación de la Información (III) 10/04/2015 7 / 14

UCS y UTF UCS define una manera de codificar los caracteres, utilizando el número del mismo en el mapa. Para esto necesitamos al menos 17 bits (2 17 = 131072). Las codificaciones de UCS son de longitud fija, se indica en el nombre la cantidad de bytes de la codificación. Inicialmente UCS-2, luego UCS-4. Problema: el texto hola mundo se codificaría en UCS-4 como: 00 00 00 68 00 00 00 6F 00 00 00 6C 00 00 00 61 00 00 00 20 00 00 00 6D 00 00 00 75 00 00 00 6E 00 00 00 64 00 00 00 6F Mientras que en ASCII la codificación es: 68 6F 6C 61 20 6D 75 6E 64 6F Solución: usar codificaciones de longitud variable (UTF = UCS Transformation Format) Maximiliano Geier Representación de la Información (III) 10/04/2015 7 / 14

UTF UTF define diversos sistemas de transformación del código de un caracter a su representación en memoria. Para indicar el tipo, se suele utilizar un número que representa la cantidad de bits que tiene cada unidad de código (code unit) del formato. Los formatos UTF más utilizados son UTF-32, UTF-16 y UTF-8. Maximiliano Geier Representación de la Información (III) 10/04/2015 8 / 14

UTF UTF define diversos sistemas de transformación del código de un caracter a su representación en memoria. Para indicar el tipo, se suele utilizar un número que representa la cantidad de bits que tiene cada unidad de código (code unit) del formato. Los formatos UTF más utilizados son UTF-32, UTF-16 y UTF-8. UTF-32 equivalente a UCS-4. Maximiliano Geier Representación de la Información (III) 10/04/2015 8 / 14

UTF UTF define diversos sistemas de transformación del código de un caracter a su representación en memoria. Para indicar el tipo, se suele utilizar un número que representa la cantidad de bits que tiene cada unidad de código (code unit) del formato. Los formatos UTF más utilizados son UTF-32, UTF-16 y UTF-8. UTF-32 equivalente a UCS-4. UTF-16 toma como base UCS-2, utiliza 2 code units de 16 bits para codificar caracteres cuyo código tiene un valor superior a U+10000. Maximiliano Geier Representación de la Información (III) 10/04/2015 8 / 14

UTF UTF define diversos sistemas de transformación del código de un caracter a su representación en memoria. Para indicar el tipo, se suele utilizar un número que representa la cantidad de bits que tiene cada unidad de código (code unit) del formato. Los formatos UTF más utilizados son UTF-32, UTF-16 y UTF-8. UTF-32 equivalente a UCS-4. UTF-16 toma como base UCS-2, utiliza 2 code units de 16 bits para codificar caracteres cuyo código tiene un valor superior a U+10000. UTF-8 toma como base ASCII, codificación de longitud variable entre 1 y 4 code units de 8 bits. Maximiliano Geier Representación de la Información (III) 10/04/2015 8 / 14

Codificación en UTF-8 En UTF-8 se utiliza la siguiente tabla para codificar caracteres Unicode: Bits Inicio Fin Byte 1 Byte 2 Byte 3 Byte 4 7 U+0000 U+007F 0xxxxxxx 11 U+0080 U+07FF 110xxxxx 10xxxxxx 16 U+0800 U+FFFF 1110xxxx 10xxxxxx 10xxxxxx 21 U+10000 U+10FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx Vamos a codificar el texto 名字, que corresponde a los caracteres Unicode U+540D U+5B57 1 1 http://www.fileformat.info/info/unicode/char/search.htm Maximiliano Geier Representación de la Información (III) 10/04/2015 9 / 14

Codificación en UTF-8 (cont.) Primero escribimos ambos números en binario: 540D = 0101 0100 0000 1101 5B57 = 0101 1011 0101 0111 Maximiliano Geier Representación de la Información (III) 10/04/2015 10 / 14

Codificación en UTF-8 (cont.) Primero escribimos ambos números en binario: 540D = 0101 0100 0000 1101 5B57 = 0101 1011 0101 0111 Como ocupan 15 bits, tenemos que usar la codificación de 3 bytes. La escribimos: 540D 1110 0101 1001 0000 1000 1101 E5 90 8D 5B57 1110 0101 1010 1101 1001 0111 E5 AD 97 Maximiliano Geier Representación de la Información (III) 10/04/2015 10 / 14

Decodificación de UTF-8 Supongamos que tenemos la siguiente cadena de bytes y la queremos interpretar como UTF-8: 63 C3 B6 E4 BA 9C F0 9D 84 9E Maximiliano Geier Representación de la Información (III) 10/04/2015 11 / 14

Decodificación de UTF-8 Supongamos que tenemos la siguiente cadena de bytes y la queremos interpretar como UTF-8: 63 C3 B6 E4 BA 9C F0 9D 84 9E 63, en binario 0110 0011 U+0063 Maximiliano Geier Representación de la Información (III) 10/04/2015 11 / 14

Decodificación de UTF-8 Supongamos que tenemos la siguiente cadena de bytes y la queremos interpretar como UTF-8: 63 C3 B6 E4 BA 9C F0 9D 84 9E 63, en binario 0110 0011 U+0063 C3, en binario 1100 0011. Maximiliano Geier Representación de la Información (III) 10/04/2015 11 / 14

Decodificación de UTF-8 Supongamos que tenemos la siguiente cadena de bytes y la queremos interpretar como UTF-8: 63 C3 B6 E4 BA 9C F0 9D 84 9E 63, en binario 0110 0011 U+0063 C3, en binario 1100 0011. Tenemos que leer 1 byte más. Maximiliano Geier Representación de la Información (III) 10/04/2015 11 / 14

Decodificación de UTF-8 Supongamos que tenemos la siguiente cadena de bytes y la queremos interpretar como UTF-8: 63 C3 B6 E4 BA 9C F0 9D 84 9E 63, en binario 0110 0011 U+0063 C3, en binario 1100 0011. Tenemos que leer 1 byte más. B6, en binario 1011 0110 U+00F6 Maximiliano Geier Representación de la Información (III) 10/04/2015 11 / 14

Decodificación de UTF-8 Supongamos que tenemos la siguiente cadena de bytes y la queremos interpretar como UTF-8: 63 C3 B6 E4 BA 9C F0 9D 84 9E 63, en binario 0110 0011 U+0063 C3, en binario 1100 0011. Tenemos que leer 1 byte más. B6, en binario 1011 0110 U+00F6 E4, en binario 1110 0100. Tenemos que leer 2 bytes más. Maximiliano Geier Representación de la Información (III) 10/04/2015 11 / 14

Decodificación de UTF-8 Supongamos que tenemos la siguiente cadena de bytes y la queremos interpretar como UTF-8: 63 C3 B6 E4 BA 9C F0 9D 84 9E 63, en binario 0110 0011 U+0063 C3, en binario 1100 0011. Tenemos que leer 1 byte más. B6, en binario 1011 0110 U+00F6 E4, en binario 1110 0100. Tenemos que leer 2 bytes más. BA 9C, en binario 1011 1010 1001 1100 U+4E9C Maximiliano Geier Representación de la Información (III) 10/04/2015 11 / 14

Decodificación de UTF-8 Supongamos que tenemos la siguiente cadena de bytes y la queremos interpretar como UTF-8: 63 C3 B6 E4 BA 9C F0 9D 84 9E 63, en binario 0110 0011 U+0063 C3, en binario 1100 0011. Tenemos que leer 1 byte más. B6, en binario 1011 0110 U+00F6 E4, en binario 1110 0100. Tenemos que leer 2 bytes más. BA 9C, en binario 1011 1010 1001 1100 U+4E9C F0, en binario 1111 0000. Tenemos que leer 3 bytes más. Maximiliano Geier Representación de la Información (III) 10/04/2015 11 / 14

Decodificación de UTF-8 Supongamos que tenemos la siguiente cadena de bytes y la queremos interpretar como UTF-8: 63 C3 B6 E4 BA 9C F0 9D 84 9E 63, en binario 0110 0011 U+0063 C3, en binario 1100 0011. Tenemos que leer 1 byte más. B6, en binario 1011 0110 U+00F6 E4, en binario 1110 0100. Tenemos que leer 2 bytes más. BA 9C, en binario 1011 1010 1001 1100 U+4E9C F0, en binario 1111 0000. Tenemos que leer 3 bytes más. 9D 84 9E, en binario 1001 1101 1000 0100 1001 1110 U+1D11E Maximiliano Geier Representación de la Información (III) 10/04/2015 11 / 14

Buscando en la tablita Ahora que tenemos los caracteres en Unicode, hay que buscar en la tabla qué quieren decir. Nos quedó: U+0063 U+00F6 U+4E9C U+1D11E Maximiliano Geier Representación de la Información (III) 10/04/2015 12 / 14

Buscando en la tablita Ahora que tenemos los caracteres en Unicode, hay que buscar en la tabla qué quieren decir. Nos quedó: U+0063 U+00F6 U+4E9C U+1D11E Una página que permite buscar caracteres fácilmente teniendo el code point es http://codepoints.net/ U+0063 LATIN SMALL LETTER C U+00F6 LATIN SMALL LETTER O WITH DIAERESIS U+4E9C CJK UNIFIED IDEOGRAPH-4E9C U+1D11E MUSICAL SYMBOL G CLEF Maximiliano Geier Representación de la Información (III) 10/04/2015 12 / 14

Buscando en la tablita Ahora que tenemos los caracteres en Unicode, hay que buscar en la tabla qué quieren decir. Nos quedó: U+0063 U+00F6 U+4E9C U+1D11E Una página que permite buscar caracteres fácilmente teniendo el code point es http://codepoints.net/ U+0063 LATIN SMALL LETTER C U+00F6 LATIN SMALL LETTER O WITH DIAERESIS U+4E9C CJK UNIFIED IDEOGRAPH-4E9C U+1D11E MUSICAL SYMBOL G CLEF El texto final es: cö 亜 Maximiliano Geier Representación de la Información (III) 10/04/2015 12 / 14

Unicode en la vida computacional El uso más preponderante de UTF-8 se encuentra en la web. En Marzo de 2015, el 83,3 % de las páginas web se encontraban codificadas en UTF-8. A pesar de esto, todavía hay ocasiones en las que la codificación de un texto no queda claro cuál es. UTF-32 se utiliza para guardar cadenas de caracteres en memoria, UTF-8 para almacenar y transferir por Internet (en Windows se usa UTF-16 también). Maximiliano Geier Representación de la Información (III) 10/04/2015 13 / 14

Terminando: Unicode en Python En Python 3, todas las cadenas de caracteres se representan internamente en Unicode ( no es el caso en Python 2!). Los nombres de las variables pueden tener caracteres raros (poco recomendable), siempre y cuando el archivo.py se encuentre guardado utilizando la codificación UTF-8. >>> a~no = 2015 >>> print(a~no) 2015 Maximiliano Geier Representación de la Información (III) 10/04/2015 14 / 14

Terminando: Unicode en Python En Python 3, todas las cadenas de caracteres se representan internamente en Unicode ( no es el caso en Python 2!). Los nombres de las variables pueden tener caracteres raros (poco recomendable), siempre y cuando el archivo.py se encuentre guardado utilizando la codificación UTF-8. >>> a~no = 2015 >>> print(a~no) 2015 Podemos escribir caracteres con su correspondiente código Unicode utilizando la siguiente notación: >>> print( \u4e9c ) 亜 Maximiliano Geier Representación de la Información (III) 10/04/2015 14 / 14

Terminando: Unicode en Python En Python 3, todas las cadenas de caracteres se representan internamente en Unicode ( no es el caso en Python 2!). Los nombres de las variables pueden tener caracteres raros (poco recomendable), siempre y cuando el archivo.py se encuentre guardado utilizando la codificación UTF-8. >>> a~no = 2015 >>> print(a~no) 2015 Podemos escribir caracteres con su correspondiente código Unicode utilizando la siguiente notación: >>> print( \u4e9c ) 亜 También podemos interpretar una cadena de bytes como UTF-8: >>> print(b \x63\xc3\xb6\xe4\xba\x9c.decode( utf-8 )) cö 亜 Maximiliano Geier Representación de la Información (III) 10/04/2015 14 / 14