PDA

Visualizza versione completa : Altri linguaggi Problemi con utilizzo/modifica esadecimale.



Andy86
24-06-11, 18: 01
:bai
C'è nessuno che conosce bene l'esadecimale? http://www.bizzetti.info/nse/i/buonafortuna.gif

Sto cercando di seguire questa guida -> Google Traduttore (http://translate.google.it/translate?hl=it&sl=en&tl=it&u=http%3A%2F%2F74.53.76.226%2F~symbian%2Fforum%2Fv iewtopic.php%3Ff%3D6%26t%3D36019%26start%3D0)

Mi blocco però quando dice:


Only registered members can view code.

Sarò ignorante, ma, pur interpretandolo con diverse guide, non riesco a leggere nell'editor (uso hex) i valori indicati dalla guida.
In teoria il "posto" che intende nel mio caso dovrebbe essere 1B2F, ma come faccio ad avere la rappresentazione in 0x00* per fare +18? http://srp.saxovts.it/forum/images/smilies/asino.gif

E poi il valore che indica per 20 caps, uguale a quelli che io uso (tramite tabella) per indicare i colori in j2me, mi sembrano comunque 3 byte, come faccio a farcelo stare in uno solo? :m:

:thx per ogni eventuale illuminazione.

ps: per chi leggesse l'argomento della guida: lo so che sto cercando di fare 1+1 = 3, ma ci voglio provare lo stesso. :sisi

Kirk78
16-01-12, 19: 30
Ciao. Io conosco abbastanza bene l'esadecimale ma non ho ben capito il problema.
Se vuoi fare 1B2F(esadecimale) + 18(esadecimale) viene 1B47 visto che 1B2F è 6959 che +24 (18 esadecimale) fa 6983 che è, appunto 1B47, o se vuoi 0x1B47.
Ho idea che hai frainteso il 18 decimale con il 0x018 esadecimale che vale 24 unità decimali.
Era quello che volevi?
:bai

Andy86
16-01-12, 19: 40
:bai

Intanto è roba vecchia. Alla fine quella tastiera l'ho fatta funzionare rimuovendo i permessi straordinari con sisContents, al prezzo di non averla in alcuni programmi, e poi l'ho pure scartata. :ghgh

Ora è solo per pura conoscenza, per imparare insomma. :sisi

Quello che volevo fare è esattamente quello che dice la guida, cioè:



ad esempio è al 0x0430. Aggiungi un 0x18 di spostamento (quindi il nostro posto sarà 0x0448)

Utilizzando però la mia posizione 1B2F.

Però siccome hex non rappresenta le posizioni in 0x00, non ho proprio capito cosa dovevo fare per seguire la guida. :ohoh

Kirk78
16-01-12, 20: 24
So che è vecchia, ma siamo tutti quì per imparare, anche dalle domande degli altri :sisi.
Scrivo la somma detta sopra in quella maniera "visiva":

0x1B2F + 0x18 = 0x1B47

Non so HEX come rappresenta (e sinceramente non lo conosco) ma la 0x18 sono 2 cifre esadecimali, e 0x1B2F (o la somma 1B47) sono 4.
Il link della guida non mi funziona, e quindi ho risposto semplicemente al tuo esempio. Senza andare a vedere la guida, esattamente cosa ti serve?
Tu (o la guida) parli di byte: il byte è di 8 bit e quindi non esadecimale. La rappresentazione minima di un esadecimale e la "word" che sono 2 byte.
A disposizione per altri chiarimenti. :bai

Andy86
16-01-12, 21: 31
Si, è vero. Il forum su cui c'era la guida è stato rimosso dal web quando il codice sorgente di symbian è stato ritirato, e con esso tutte le discussioni e i contributi perduti per sempre. :boh

Per i byte priproquo mio, volevo dire tre gruppi da 2 preceduti da doppio 0. (In j2me i colori in esadecimale si indicano con "0x00RRGGBB".).
La questione è che dalla guida mi pareva di aver capito di dover sostituire al gruppo di byte di 4 cifre trovato con il calcolo, quello indicato davanti a 20caps, che è di 8 cifre. :ohoh

EDIT: ho ritrovato la guida, questa è la parte relativa alla modifica in esadecimale, stavolta completa:



Fire up your HEX Editor and open the file!
Look for an IMEI number, and replace it with yours(it must be very similar to yours , 70-80% match is enough)
After this, if you want to add more capabilities (OPDA Cert has 17 from 20, to install ROMPatcher on an unhacked phone you need all 20 capabilities), look at the last byte of the IMEI, as an example it is at 0x0430. Add a 0x18 displacement (so our place will be 0x0448) there are the capabilities, listed here:


17 caps:007DEFF0
20 caps:00FFFFF0
13 caps:002D8FF0

Edit it to the one you want to use (20 caps is good for ROMPatcher, 17 is enough for HelloOX!) and you're almost done! save the file, quit from the hex editor.,

L'Imei probabilmente lo vedevo nella colonnina a fianco del codice, dove non era rappresentato in esadecimale... ma poi non più capito come trovare la posizione successiva... :boh

Kirk78
16-01-12, 22: 41
Sono confuso scusami.

sostituire al gruppo di byte di 4 cifre trovato con il calcolo, quello indicato davanti a 20caps, che è di 8 cifre
00FFFFF0 in esadecimale equivale a 16,777,200 in decimale e sono 16 byte.

Per i byte priproquo mio, volevo dire tre gruppi da 2 preceduti da doppio 0. (In j2me i colori in esadecimale si indicano con "0x00RRGGBB".).
0x00RRGGBB dovrebbe essere la rappresentazione RGB del colore (RR per rosso, GG per verde, BB per blue) che è una DWord. Difatti la definizione del COLORREF è

Only registered members can view code.

Per "creare" un valore RGB dai valori dei colori esiste la macro RGB

Only registered members can view code.

Utilizzando la macro i colori vanno dal nero RGB(0x00,0x00,0x00) al bianco RGB(0xFF,0xFF,0xFF). In "testa" c'è sempre uno 0x00, quindi bianco in rappresentazione RGB: 0x00FFFFFF.

Di esadecimale mi ricordo dagli antichi studi, di colori un po' meno, anche se i famosi 16.7 milioni di colori sono prodotti dalle combinazioni RGB dei 3 colori che possono andare da 0 a 255 (in esadecimale 0x00 a 0xFF).
:bai

Andy86
16-01-12, 23: 17
:bai


sono 16 byte.

Si, si... intendevo cifre in base sedici, quindi F come cifra.
Comunque quella che non capisco è l'equivalenza tra gli 0x e i non 0x.

La storia dei colori la so, ho imparato imparando a fare i giochini in j2me. :sisi

Ma quindi se 0x18 è dword, perché la guida dice di editare in esadecimale e poi indica valori in dword?

Lo hai visto l'edit nell'ultimo post che ho messo la guida? Potresti provare a rispiegare la guida in modo più semplice? :ehmm
Cosi magari capisco cos'è che non so che mi fa andare in palla. :boh

Kirk78
17-01-12, 10: 33
0x18 è dword
Esadecimale è un sistema di rappresentazione dei numeri a 16 "cifre" per ogni "posizione" da 0 a F (base 10 in decimale, 2 in binario), mentre dword, byte, bit etc è il tipo di dato. Sono 2 cose diverse.
Esempio 0x18 è un byte rappresentato in esadecimale, che è 24 in decimale, 11000 in binario (se vuoi 00011000).
Non so HEX come rappresenta un file. Il mio semplice editor lo rappresenta
1754 con ogni byte rappresentato da 2 caratteri esadecimali (00...FF) e a destra la rappresentazione ASCII.
:bai

Andy86
17-01-12, 14: 11
:bai

Si, hex rappresenta anche lui così. Però io non avevo proprio capito con cosa dovevo fare il calcolo della posizione.
Sotto in basso hex dice position "xx / xxxxxx". Io non sono riuscito a capire di quanto dovevo avanzare nel testo per aggiungere quelle 0x018 posizioni in più, visto che le posizioni erano rappresentate in altro modo. :sisi