Rappresentazione dei dati RAPPRESENTAZIONE DEI DATI LA FUNZIONE INTERO INTERO: R --> I y = [r] il massimo intero non maggiore di r r= 7.9 [r] = 7 7 3.01 -7.9 -7 -3.01 7 3 -4 -8 -7 l'intero dell'opposto non e' l'opposto dell'intero {[r]} intero per eccessi r= 7.9 {[r]}= 8 7 3.01 -7.9 -7 -3.01 7 4 -3 -7 -7 troncamento coincide con l'intero "per difetto" per r>0 e con l'intero "per eccesso" per r<0 r= 7.9 7 3.01 -7.9 -7 -3.01 trunc(r)= 7 7 3 -3 -7 -7 QUOZIENTE E RESTO SI DEFINISCE QUOZIENTE INTERO (QUOTO) DI x PER M, L'INTERO DEL RAPPORTO x/M. Q = [ x/M ] x= 3 Q= 0 13 1 23 2 x = QM + R -3 -1 -13 -2 -23 -3 R = x - QM Il resto della divisione intera di x per M viene detto resto modulo-M si indica con il simbolo |x|M |x|M = x - [x/M] * M il resti modulo-M di un numero e' positivo o nullo per 0<= x <M il resto modulo-M coincide con x per 0<= x < M --> |x|M =x per -M<x<0 il resto modulo-M e' il complemento ad M del modulo di x: per -M< x < 0 --> |x|M =M - |x| = M+x il resto mod-M di x e' invariante se si aggiunge o sottrae ad x un multiplo di M |x+qM|M =|x|M Codifica delle informazioni Insieme di simboli Alfabeto origine Alfabeto destinazione Applicazione che trasformi l’alfabeto origine i quello destinazione Codifica delle informazioni Codifica a lunghezza fissa Codice fiscale, Codice di avviamento postale N. telefonico Codici a lunghezza variabile morse Codifica delle informazioni Codifica indiretta T=(x1,x2,…,xn) J=(a,b,c) B=(0,1) La misura dell’informazione m={[log2 N]} m è la quantità di informazione (misurata in BIT) N è la cardinalità del tipo da misurare Codifica a lunghezza fissa Km >=N m={[logk N]} l>=m l lunghezza del codice Codifica a lunghezza fissa X1 00000 X5 10010 X2 01001 X6 00001 X3 01011 X7 01000 X4 01010 X8 01100 …… …… X20 ….. Codifica in bit Codifica diretta B=(0,1) T=(x1,x2,…,x20) m={[logk N]} Codifica indiretta T=(x1,x2,…,x20) alfabeto origine J=(a,b,c) alfabeto intermedio B=(0,1) alfabeto destinazione X16 bac 011100 x7 a 0 b 0 1 c 1 0 0 Sistema di numerazione •Un insieme finito di simboli •La codifica: leggi per rappresentare il numero •Gli algoritmi per le 4 operazioni (0,1,2,…9) Posizionale pesato Tavola pitagorica, somma a due a due,.., regole del riporto Posizionale pesato (21743.47)10 N= Sommatoria( ai*bi ) per i che và da –m a n b< > 10 B=2 (0,1) (00010.10)2 Sistema binario:i pesi B0 1 B1 2 B2 4 B3 8 B8 256 Numerazione Binaria: algortimi 0 0 1 1 0 1 1 10 Numerazione binaria: operazioni 1011 + 111 = _____ 10010 101010 – 10101 _______ 010101 11 + 7 ____ 18 110 x 101 = _____ 110 000 110 ______ La numerazione binaria 11110 : 101 -------110 Sistema di numerazione ottale B=8 (0,1,2,3,4,5,6,7) 77 8 63 10 CODICE OTTALE cifra codice cifra codice 0 1 2 3 000 001 010 011 4 5 6 7 100 101 110 111 36410 = 5548 101101100 Sistema di numerazione esadecimale b=16 (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) 9F 16 159 10 CODICE ESADECIMALE cifra codice cifra codice 0 1 2 3 8 A C E 000 001 010 011 1000 1010 1100 1110 4 5 6 7 9 B D F 100 101 110 111 1001 1011 1101 1111 TEOREMA LA RAPPRESENTAZIONE IN BIT DI UN NUMERO E' LA MEDESIMA PER QUALSIASI NUMERAZIONE CON b = 2K SE PER LA CODIFICA DELLE CIFRE SI ADOPERA LA NUMERAZIONE BINARIA 0010101111100001010111002 127605348 2BE15C16 Con la numerazione decimale, un numero e' rappresentato in cifre e ciascuna cifra e' codificata in bit. 8012 1000 8-4-2-1 0000 0001 0010 CODICE BCD codice cifra 8421 4311 eccesso3 3 0 0000 0000 0011 1 0001 0001 2 0010 3 2 su 5 63210 biquina rio 8421 parita' 00110 0100001 00000 0100 00011 0100010 10001 0011 0101 00101 0100100 10010 0011 0100 0110 01001 0101000 00011 4 0100 1000 0111 01010 0110000 10100 5 0101 0111 1000 01100 1000001 00101 6 0110 1011 1001 10001 1000010 00110 7 0111 1100 1010 10010 1000100 10111 8 1000 1110 1011 10100 1001000 11000 9 1001 1111 1100 11000 1010000 01001 CONVERSIONE DI BASE NUMERI INTERI NUMERI FRAZIONARI NUMERI REALI NUMERI INTERI N = Q0r + R0 Q0 = Q1r + R1 Q1 = Q2r + R2 . . Qn-1= Qnr + Rn N = Qnrn+1 + Rnrn+ ......+ R1r + R0 QnRnR1........R0 ….. Q=N; I=0; while (Q>=r) { T(I)= |Q|r; Q= [Q/r]; I=I+1; } T(I)=Q; ….. 10268 22 8 1283 66 8 48 160 8 28 =3 =0 20 8 4 3 0 4 2 1026810 = 240348 463 12 26 121 12 1 10 23 11 10 1 11 A1B NUMERI FRAZIONARI N * r = R1 + N1 N1 * r = R2 + N2 . . Nn-1 * r = Rn + Nn N = R1r-1 + R2r-2+ ......+ Rnr-n+ Nnr-n R1R2........Rn 0.C1C2........Cn ….. do R(I) = [N*r] N = N*r - R(I); I = I+1; while not (N=0 || I>k) ….. 0.6 0.8 0.4 0.2 *8 *8 *8 *8 = = = = 0.(4631)8 4+ 6+ 3+ 1+ 0.8 0.4 0.2 0.6 Tipo carattere (ASCII) American Standard Code Information Interchange Ordinato totalmente Ord(c) quale è la posizione di c ? Chr(i) quale è il carattere il cui numero d’ordine è i Chr(ord( c ))=c ord(chr(i))=i Pred( c)= (chr (ord ( c )-1) Succ (c ) = (chr (ord ( c )+1) Rappresentazione interi Interi senza segno Interi con segno Per indirizzi di memoria Segno e modulo Complementi Codici eccesso k Supero Virgola mobile secondo lo standard Institute of Electrical and Electronics Engineering (IEEE) Rappresenatzione dei numeri Intervallo Base Numero cifre Approssimazione Underflow Overflow Numeri naturali M= bn 0<=X<M i=x +- e (2,8,16,32,… oppure 10) Intervallo [0,M) Approssimazione e<=1/2 Underflow x<= ½ Overflow x>=M Proprietà numeri naturali Sempre n cifre n=5 b=10 00257 duecentocinquantasette n=5 b=2 00101 cinque x= bk n=5 b=10 k=2 n=5 b=2 k=2 00100 cento 00100 quattro Proprietà: continua x* bk x/bk b=10 252*100=25200 b=10 252/100 2 b=2 101*10=1010 shift left b=2 101/10=10 shift right bk/2= b/2 * bk-1 K=3 n=5 b=10 00500 K=3 n=5 b=2 00100 N=5 b=10 49999<50000 > 4<5 N=5 b=2 01111<10000 <-> 0<1 Complemento a n b di X N=6 b=10 x=005600 C=994400 N=6 b=2 x=101100 c= 010100 Rappresentazione di k b -1 N=4 b=10 10000-1=09999 – 100-1=00099 N=4 b=2 10000-1= 01111 100-1=00011 Rappresentazione segno e modulo I=s*X |i| appartiene [0,M) Approssimazione 0 |i|>=M overflow Rappresentazione segno e modulo per reali I=x più o meno e I=s * x Intervallo |x| appartiene [0,M) Approssimazione 0<= e <1/2 Overflow |x| >= M Underflow 0<= |x| <=1/2 Rappresentazione numeri reali IEEE Singola 32 bit Doppia 64 bit Quad. 128 bit S Esponente 8bit Mantissa 23 bit