Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

HW6 trovare base 256

M
Michele13 (1900 points)
7 25 32
in HW6 obbligatorio by (1.9k points)
ho capito che devo codificare x,y,w,h in base 256 ma come faccio?

E ammesso che trovi il valore in base 256 come mi ricavo i valori di RGB del pixel da colorare?

3 Answers

twgever (17470 points)
8 29 105
by (17.5k points)
beh, hai 3 valori per i colori: (a,b,c), la somma di questi moltiplicati per il valore giusto dà come risultato o x, o y, o w, o h. Facciamo che sia il valore di x, quindi a*(256^2) + b*(256^1) + c*(256^0) = x. E' la conversione di numeri da una base all'altra! il punto è che noi avremo come numeri di partenza, quelli in base decimale. Allora la cosa è semplice, come troviamo i numeri in base 2? abbiamo 2 tecniche. o dividere i numeri per 2 e procedere in base al resto, oppure (idea migliore secondo me) sottrarre al numero da convertire la potenza di 2 più alta possibile. Se avessimo 78, possiamo sottrarre 64, e ottenere 14, possiamo provare a sottrarre 32, e vediamo che non si può fare, proviamo con 16, no, proviamo con 8 e otteniamo 6, proviamo con 4 e otteniamo 2, proviamo con 2 e otteniamo 0, proviamo con 1 non si può fare. In base a chi può essere sottratto, dal più alto, assegniamo i valori binari, cioè 1001110. Il procedimento da seguire con le altre basi (inclusa 256) è totalmente analogo.

Per quanto riguarda la prima parte della domanda, mi sa che è uno dei problemi principali dell'HW.
andrea_25 (6070 points)
2 2 24
by (6.1k points)

Per convertire in base 256 un numero in base 10 si puó applicare il metodo delle divisioni iterate, che dovresti aver studiato nel corso di progettazione di sistemi digitali.

In ogni caso, si procede nel modo seguente:

dividere il numero da convertire per la base b fino a quando l’ultimo quoziente è minore della base stessa (b), dopodiché il numero convertito si ottiene prendendo l’ultimo quoziente e tutti i resti delle divisioni, procedendo dall’ultimo resto al primo e scrivendoli da sinistra verso destra.

 ottenendo ad esempio il numero 690 tramite questo metodo, lo converti in una tupla in questo modo: (6, 9, 0)

g
giacomo_venturini (6680 points)
3 6 40
by (6.7k points)
Il risultato da ottenere è (A, B, C) dove A, B e C sono valori da 0 a 255.
Il passaggio da base 10 a base X si può ottenere con il metodo delle divisioni successive, quindi dovrai prendere i resti di ripetute divisioni per 256 del valore e inserirli nelle 3 posizioni.
Una volta ottenuti i tre valori puoi riottenere il valore iniziali con la seguente espressione (A*256^2) + (B*256) + C