Vous êtes sur la page 1sur 17

Redes de Computadores II

Prctica Sesin 2

Ao: 2
Tipo: Obligatoria
Crditos: 6
Grado: Grado en Ingeniera Informtica

AnaIsabel.Gomez@uclm.es
Contenidos
Representacin de Datos

Enteros de python

Caracteres

Tipos multibyte y ordenamiento

Cadenas de caracteres y secuencias de bytes

2
Redes de Computadores II
Representacin de datos

Formas de representar la misma informacin:

- Entero
- Decimal
- Cadena de caracteres
- Fecha
- ...

3
Redes de Computadores II
Representacin de datos

1 Byte
= 8 Bits

4
Redes de Computadores II
Representacin de datos

El binario es til para:


Campos de bits

Banderas binarias

Mscaras

5
Redes de Computadores II
Representacin de datos

Personas Decimal Computadores Binario


6
Redes de Computadores II
Representacin de datos

Conversin
dec-bin

dec-hex

bin-hex

7
Redes de Computadores II
Representacin de datos

Y en ?

>>> a = 0b101010 >>> bin(42)


42 0b101010
>>> b = 0o52 >>> oct(42)
42 0o52
>>> c = 0x2A >>> hex(42)
42 0x2A

Mismo valor, distinta representacin


8
Redes de Computadores II
Caracteres

9
Redes de Computadores II
Caracteres
Operaciones con Python
ord(a) ord(\b)
chr(97) ord(\n)

10
Redes de Computadores II
Caracteres

#!/usr/bin/python #!/usr/bin/python
for i in hola: for i in hola:
print(i) print(ord(i))

11
Redes de Computadores II
Caracteres
str, bytes y bytearray

>>> a=abcd

>>> b=bytes(abcd,ascii) >>> b[0]=20

>>> c=bytearray(abcd,ascii) >>> c[0]=20

>>> a.encode()
babcd Secuencia de Bytes
>>> b.decode()
abcd Str
>>> c.decode()
abcd Str
12
Redes de Computadores II
Tipos multibyte y ordenamiento

Big Endian y Little Endian

13
Redes de Computadores II
Tipos multibyte y ordenamiento
socket.ntohs()
Convierte un entero de 16 bits (short) del ordenamiento de la red al
del host.
socket.ntohl()
Convierte un entero de 32 bits (long) del ordenamiento de la red al del
host.
socket.htons()
Convierte un entero de 16 bits (short) del ordenamiento del host al de
la red.
socket.htonl()
Convierte un entero de 32 bits (long) del ordenamiento de host al de la
red.

14
Redes de Computadores II
Cadenas de caracteres y secuencias de bytes

>>> cad=and

>>> seq=bytes(cad, ascii)


UnicodeEncodeError: ascii codec cant encode character []

>>> seq=bytes(cad, utf-8)

>>>seq
b\xc3\xb1and\xc3\xba

>>> len(seq)
7 La secuencia equivalente requiere 7 bytes
a pesar de que la cadena solo tiene 5 caracteres
15
Redes de Computadores II
Prxima Sesin
Empaquetado

16
Redes de Computadores II
Preguntas y Comentarios

17
Redes de Computadores II

Vous aimerez peut-être aussi