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

Do you need help?

Codifica dei valori rispettivi al rettangolo in base 256

S
Simone99_ (1180 points)
22 50 60
in HW6 obbligatorio by (1.2k points)
buongiorno

che si debbano convertire i valori del rettangolo in base 256 per poi considerare i vari resti come rispettivi canali R G B sembra chiaro, ma non capisco come fare se ho dati piccoli, per esempio consideriamo il rettangolo con dati ( x,y, w,h,c) = ( (10, 5, 10, 10, (255, 0, 255) ) e prendiamo x in esame: se non ho capito male l'idea è quella di prendere 10 visto in base 10 e convertirlo in base 256, ma non mi è possibile farlo , nell'esempio della consegna invece , viene preso "66051" come numero da convertire in base 256, e difatti fa 123. Stessa cosa varebbe ovviamente sia per y, w, h , penso stia sbagliando qualcosa io nella comprensione, grazie in anticipo

3 Answers

1965335 (1080 points)
1 2 8
by (1.1k points)
certo che è possibile, la x diventerebbe (0,0,10) poichè la prima e unica divisione da resto 10
twgever (17470 points)
8 29 105
by (17.5k points)
Proprio come ha detto l'altr* ragazz*, ti restituisce (0,0,10)

Infatti, tu hai un numero in base decimale, e lo devi convertire in base 256. Facciamo alcuni esempi

512 , sottraggo 256, quante volte? una volta e ottengo 156, sottraggo un'altra volta e ottengo 0, quindi ho sottratto 256 2 volte e il numero in base 256 sarà 2 0, ossia (0,2,0)

257, sottraggo 256 una volta, e ottengo 1, quindi il numero in base 256 sarà 1 1, ossia (0,1,1)

Il procedimento da seguire sarebbe: prova a sottrarre 256^2, e quante volte riesco a sottrarlo, diventa il primo valore della tupla. al risultato provo a sottrarre 256, e quante volte riesco a sottrarlo diventa il secondo valore della tupla. Il resto sarà il valore del terzo elemento.

con (1,2,3) come faccio ad ottenere 66051? faccio 1*(256^2)+2*(256^1)+3*(256^0)

con (0,0,10) invece? faccio 0*(256^2)+0*(256^1)+10*(256^0). Che infatti fa 10, ossia il valore di partenza!
S
Simone99_ (1180 points)
22 50 60
by (1.2k points)
perfetto, ora sembra essere chiaro, in pratica dovevo "accettare " il fatto di lavore su una codificazione di numeri molto piu piccoli , grazie comunque a entrambi
Fabioerpini (7970 points)
6 10 27
by (8.0k points)
10 in base 256 farebbe 10, quindi dovresti tradurlo nella tupla (0,0,10). Per fare ciò ti posso consigliare di applicare il ragionamento per la conversione binaria(ovviamente non identico, altrimenti lo traduci in base 2 )