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.