Do you need any help?

Codifica dei valori rispettivi al rettangolo in base 256

S
Simone99_ (1180 points)
13 50 59
asked Nov 23, 2020 in HW6 obbligatorio by Simone99_ (1,180 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
answered Nov 23, 2020 by 1965335 (1,080 points)
certo che è possibile, la x diventerebbe (0,0,10) poichè la prima e unica divisione da resto 10
twgever (15190 points)
7 27 105
answered Nov 23, 2020 by twgever (15,190 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)
13 50 59
commented Nov 23, 2020 by Simone99_ (1,180 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
answered Nov 23, 2020 by Fabioerpini (7,970 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 )