Prova formativa classe 3E – 19 ottobre 2012 - Laboratorio di Sistemi 1 Convertire in decimale e in esadecimale i seguenti numeri in binario puro (numeri binari senza segno): 1. 0000 1100 dec=8+4=12 HEX=0C 2. 0010 1100 dec=32+8+4=44 HEX=2C 3. 0010 1001 dec=32+8+1=41 HEX=29 4. 0101 1101 dec=64+16+8+4+1=93 HEX=5D 5. 1100 1010 dec=128+64+8+2=202 HEX=CA 2 Convertire in binario puro i seguenti numeri decimali: 1. 13 = 8+4 +1 0000 1101 2. 21 = 16 +4 +1 0001 0101 3. 212 =128+64+ 16 +4 1101 0100 3 Convertire in binario i seguenti numeri esadecimali: 1. 39 0011 1001 2. 2E 0010 1110 3. EA 1110 1010 4 Sia dato il segmento di codice C# seguente: ushort num = 5; Sapendo che le variabili ushort (unsigned short) memorizzano numeri interi privi di segno in 2 Byte di RAM (2*8=16 bit), ricavare il numero minimo e quello massimo memorizzabili nella variabile num. Minimo 0000 0000 0000 0000 0 Massimo 1111 1111 1111 1111 215+214+213+212+211+210+29+…..+20 = 216-1 65535 5 Eseguire, convertendo i numeri decimali in numeri binari dotati di segno, le seguenti operazioni aritmetiche: 1. 7 + 6 devo definire il numero di bit necessari con il bit di segno, il numero più grande è 13 quindi mi servono 5 bit da -16 a +15, mi ricordo che il primo bit a sinistra è 1 se il numero è negativo e allora in binario scrivo 00111 + 00110 = 01101 2. 17 – 5 devo definire il numero di bit necessari con il bit di segno, il numero più grande è 17 quindi mi servono 6 bit da -32 a +31, mi ricordo che il primo bit a sinistra è 1 se il numero è negativo e allora in binario scrivo 01 0001 – 00 0101 = 01 0001 + 111011 = (1) 00 1100 3. 5 - 12 devo definire il numero di bit necessari con il bit di segno, il numero più grande è 12 quindi mi servono 5 bit da -16 a +15, mi ricordo che il primo bit a sinistra è 1 se il numero è negativo e allora in binario scrivo 0 0101 – 0 1100 = 0 0101 + 1 0100 = 1 1001 (-7) 0 0111 N.B.: se il risultato è negativo ricavarne il valore assoluto 1 1001 (-7) 0 0111 (+7) Per calcolare il complemento a 2 si parte dal bit meno significativo a destra e, spostandosi verso sinistra, si lasciano i bit invariati fino al primo bit uguale a 1 che incontro (e lo lascio a 1), poi inverto tutti i bit rimanenti continuando a scorrere i bit verso sinistra 6 Si vuole partizionare su un Hard Disk da 250 GByte in due unità da 100 GByte e 150 GByte. Ricavare le dimensioni delle due unità in MByte. Ricordando che: 1kByte = 1024 Byte 1MByte= 1024 kByte = 1024 *1024 Byte 1GByte= 1024 MByte = 1024*1024*1024 Byte 100GByte= 100*1024 MByte=102’400 MByte 150GByte= 150*1024 MByte=153’600 MByte