Anteprima
Vedrai una selezione di 3 pagine su 6
Schemi esercizi informatica (UTF-8, conversioni, complemento a due,...) Pag. 1 Schemi esercizi informatica (UTF-8, conversioni, complemento a due,...) Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Schemi esercizi informatica (UTF-8, conversioni, complemento a due,...) Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Conversione float

RISULTATO: frazionaria ma le va aggiunto 3. Anche la parte decimale si ottiene con le potenze di due che però sono, partendo Quindi la parte frazionaria è: immediatamente a destra della virgola 1/2, 1/4, 1/8

RISULTATO = 125.125

1. Supponiamo di leggere il Vogliamo rappresentarlo in floating point a 16 bit, half precision valore -0.09357

2. La parte intera si ottiene con le divisioni La parte intera sarà 0 per 2 -> 0/2 = 0 con resto 0

3. Trasformo il numero in binario

4. La parte frazionaria si ottiene moltiplicando per 2 fino a che non ottengo 1 La parte frazionaria sarà 0.0001

5. La parte frazionaria non va Quindi la parte frazionaria è 1, infatti sarebbe bene perché 0 < f < 1, mentre qui 1

6. va portato in binario e viene: 0.1 + 1, mentre l'esponente è -4 (a cui va però sommato 15): la virgola per

ottenere qualcosa posizioni -4 + 15 = 11(con virgola mobile) del genere 1'xxxxxxx mi indica il segnox'01011'xxxxx è l'esponente che avevamotrovato prima (a cui ho aggiunto uno 0 asinistra in quanto 11 in binario è 1011, però l'4. Devo portarlo in binario e 1'01011'1000000000, che è così suddiviso esponente deve occupare 5 bit e quindi èottengo: diventato 01011)x'xxxxx'1000000000 è la parte frazionaria.

Un numero floating point (virgola mobile) Come visto sopra, la parte frazionaria è 1è della forma scritta sopra, dove "f" però mi mancano 9 bit per avere i 10 bit cherappresenta la parte frazionaria, "e" l' deve occupare la parte frazionaria e quindiesponente. 1 non è un bit della parte completo con degli zeri a destrafrazionaria ma le va aggiunto 1010 -> ASe volessi ottenere l'esadecimale 1110 -> Edevo riscrivere il mio numero

AE001010'1110'0000'0000 0000 -> 0come: 0000 -> 0

Ogni byte ha dei bit che sono "occupati" dall'intestazione UTF-8, in particolare il primo 0 fa parte dell'intestazione.

In questo caso abbiamo 7 bit liberi perché il primo byte avrà una sequenza di 1 pari alla lunghezza della sequenza di byte (es. 11 se la sequenza è di due byte) seguiti da uno 0, mentre tutti i byte successivi avranno come intestazione solo 10. Inoltre bisogna ricordare che un byte ospita 8 bit.

Sequenza composta da un solo byte 0xxxxxxx

Sequenza composta da due byte 110xxxxx 10xxxxxx

Abbiamo come simbolo "{" e sappiamo che ha CODE POINT "7B", dobbiamo rappresentarlo in binario:

ESEMPIO 1

1. Ricaviamo il binario di 7B semplicemente la rappresentazione ASCII (rappresentarlo in

UTF-8 Code Point), quindi anche in UTF-8 resta 7B

Codifica

Dato il CODE POINT ricavare la codifica UTF-8 11'1011'1011

Se voglio trasformare questo in esadecimale

Codifica

Abbiamo il code-point 3BB e lo vogliamo 0011'1011'1011. Gli zeri a sinistra non sono I bit che mi interessano sono 10, quindi un

Questi saranno i miei due byte, in cui i numeri

ESEMPIO 2

1. Ricaviamo il binario di 3BB devo dividere i bit in gruppi di quattro e

Decodifica

Data la codifica UTF-8 ricavare il CODE POINT codificare in UTF-8 importanti e quindi li possiamo togliere byte non mi basta per metterceli tutti e ho neri sono l'INTESTAZIONE UTF-8, lo 0 rosso ottengo CEBB

bisogno di due byte serve per completare i bit, i numeri blu sonoquelli che avevo ricavato dal code point

Conversione

ESEMPIO 3

Ho 1F385 e devo rappresentarlo in UTF-8 0001'1111'0011'1000'0101

Ho 17 bit quindi ho bisogno di 4 byte 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 11110000 10011111 10001110 10000101 FO 9F

8E 85UNICODE 0011 -> 3

Immaginiamo di avere come esadecimale CEBB sappiamo che è formato da 2 byte in Se abbiamo due byte, per quello detto prima, Convertendo CEBB in binario ottengo 110' 3BB -> Code pointcodificato in UTF-8 CEBB e voglio trovare il quanto ogni lettera esadecimale è formata sappiamo che il primo sarà del tipo 110xxxxxESEMPIO 1 Tolgo l'intestazione e mi rimane: 0011'1011'1011 1011 -> B01110 10'111011CODE-POINT da 4 bit e il secondo 10xxxxxx 1011 -> BDecodifica 1110'0010 -> primo byte Tolgo le intestazioni e mi rimane: 0100'0100'0011'1010.Ho ricevuto in UTF-8 una sequenza di byte e 1110'0010'1000'1000'1001'1010. Devo rappresentarlo in esadecimale e quindi10'001000 -> secondo byte 00100010000111010. Tolto anche gli zeri a NB: ho aggiunto uno zero a sinistra perchéESEMPIO 2 Ottengo 221A come esadecimalevoglio sapere qual è il code point: E2889A

Vedo che ho 3 byte lo divido in gruppi di 4:

10'0110 -> terzo byte sinistra, quindi mi rimane 1000

1000 1110 altrimenti avrei avuto solo 3 bit

Questa volta ho separato con l'apice l'intestazione dal resto dei bit. Infatti vedo che il primo byte ha 1110 come intestazione, infatti i byte sono 3 (come il numero di 1 nell'intestazione)

Dettagli
A.A. 2021-2022
6 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher matte.franchini di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e laboratorio di programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Parma o del prof Tomaiuolo Michele.