- Dire a cosa corrisponde la sequenza di bit 010010000110100100100001 interpretandola come caratteri ASCII. Si prende la sequenza 010010000110100100100001 e si divide in gruppi di 8 bit (byte), ognuno dei quali rappresenta un carattere: 01001000 01101001 00100001 Poi, si converte ogni byte in esadecimale per poter accedere piu' facilmente alla tabella ASCII: 01001000 = 0x48 01101001 = 0x69 00100001 = 0x21 Si cercano poi tali valori sulla tabella ASCII: 0x48 = H 0x69 = i 0x21 = ! La sequenza di bit corrisponde quindi alla stringa "Hi!" - Rappresentare la stringa "Come va?" come sequenza di bit Si convertono prima i caratteri uno per uno, usando la tabella ASCII: C = 0x43 o = 0x6f m = 0x6d e = 0x65 " " = 0x20 v = 0x76 a = 0x61 ? = 0x3f La stringa "Come va?" viene codificata quindi con la sequenza di bit corrispondente a 0x43 0x6f 0x6d 0x65 0x20 0x76 0x61 0x3f che e' 01000011 01101111 01101101 00100000 01110110 01100001 00111111 - Rappresentare come sequenze di bit le seguenti frasi: "1 2 3 stella!", "Hello, world" "non c'e' 2 senza 3" - Rappresentate la frase "L'informatica รจ bella" come sequenza di bit usando lo standard ASCII - Data una sequenza di 8 bit, come posso sapere se la sequenza puo' rappresentare un carattere in base allo standard ASCII? Una sequenza di 8 bit ha significato per ASCII se il suo bit piu' significativo e' a 0 (interpretando gli 8 bit come un numero naturale, il valore e' compreso fra 0 e 127). Inoltre, i valori fra 0 e 31 ed il valore 127 non corrispondono a caratteri "stampabili" - Dati 8 bit che rappresentano un carattere secondo lo standard ASCII, come posso verificare se il carattere corrisponde ad una cifra? O ad una lettera minuscola / maiuscola? Consultando la tabella ASCII, si puo' verificare che le cifre corrispondono a valori compresi fra 0x30 e 0x39. Si verifica anche che le lettere minuscole corrispondono a valori compresi fra 0x61 e 0x7a e le lettere maiuscole corrispondono a valori compresi fra 0x41 e 0x5a - Interpretare la sequenza di bit 00110010001100000011000000110001 come sequenza di caratteri codificati in base ad ASCII, verificare se corrisponde ad un numero decimale e calcolarne il valore 00110010001100000011000000110001: 00110010 00110000 00110000 00110001 00110010 = 0x32 2 00110000 = 0x30 0 00110000 = 0x30 0 00110001 = 0x31 1 Il numero e' 2001 - Supporre che una sequenza di bit codifichi la rappresentazione ASCII di un numero naturale in base 10. Spiegare come calcolare il valore del numero corrispondente. + Prima di tutto, dividere la sequenza di bit in gruppi di 8 (ogni gruppo rappresenta un carattere) + Convertire i gruppi di 8 bit nei caratteri corrispondenti + Per fare questo, puo' essere utile convertire prima i numeri binari in esadecimali... + ... E poi cercare i numeri esadecimali nella tabella ASCII + Verificare che tutti i caratteri siano cifre + Calcolare il valore del numero moltiplicando ogni cifra per l'opportuna potenza di 10 - Applicare l'algoritmo descritto sopra alla sequenza 001100010011001000110011 001100010011001000110011 = 00110001 00110010 00110011 00110001 = 0x31 = '1' 00110010 = 0x32 = '2' 00110011 = 0x33 = '3' 1 * 10^2 + 2 * 10^2 + 3 * 10^0 = 123 - Codificare il numero 666 prima come naturale positivo in base 2 e poi come sequenza di caratteri (secondo ASCII) 666 / 2 = 333 resto 0 333 / 2 = 166 resto 1 166 / 2 = 83 resto 0 83 / 2 = 41 resto 1 41 / 2 = 20 resto 1 20 / 2 = 10 resto 0 10 / 2 = 5 resto 0 5 / 2 = 2 resto 1 2 / 2 = 1 resto 0 1 / 2 = 0 resto 1 1010011010 (= 0x29a) 6 ---> 0x36 = 00110110 001101100011011000110110