Array bidimensionale

Buona sera a tutti, vorrei costruire un array bidimensionale, 6x8 in cui mettere dei dati in esadecimale. Fino ad ora li ho sempre usati con numeri decimali, ma nn so come fare con gli esadecimali.
Grazie a chi può aiutarmi.

I numeri sono sempre numeri, indipendentemente da come li rappresenti, in decimale, esadecimale o binario...

ciao manolomao,

datta così non è chiaro cosa non ti è chiaro... :smiley:
prova a dare un occhio a QUESTO link.

I numeri sono sempre nnumeri...hai ragione sai...il mio problema è che forse ho commesso un errore davvero da principiante...
Io scrivero così

int my_array[2][2]={{23,3C},{59,E6}};

ed il compilatore mi dava errore (la C e la E proprio non le digeriva :confused: )
Forse va scritto così:

int my_array[2][2]={{0x23,0x3C},{0x59,0xE6}};

Mi confermate la mia teoria??
Purtroppo ora non ho modo di provare....

Si in numeri (costanti numeriche) in esa il C vuole davanti 0x
Ovviamente, perché se scrivi 59 cosa è ? in decimale o esa, il compilatore non può indovinare :wink:

Ogni volta che hai un numero, puoi rappresentarlo nella base che preferisci.

Esempio: decimale 35, esadecimale 0x23 (nota lo 0x davanti), ottale 043 (nota lo zero davanti), binario(1) B00100011 (nota la B davanti - (1)solo Arduino IDE), binario(2) 0b00100011 (nota lo 0b davati - (2)solo nuove versioni di GCC).

Comunque decidi di rappresentarlo … sempre lo stesso numero è ed in memoria sempre gli stessi bit sono.

Guglielmo

Grazie ragazzi, ieri sera ero troppo fuso...
Che errore elementare....
:cold_sweat:

Ne aprofitto per farvi una domanda:
vi è mai capitato di usare il goto??
A qualcuno si drizzeranno i capelli, lo so....per curiosità l'ho provato ad usare e IDE mi dava errore...

label: digitalWrite(2,HIGH);
.........
.........
.........
        goto label;

label non dichiarata......
Ho letto sul reference e non trovo nulla di sbagliato...
In assembler lo usavo senza problemi....
Cosa ho sbagliato??

manolomao:
Cosa ho sbagliato??

... già solo l'idea di usare il goto è "avere sbagliato" !!! :smiling_imp: :smiling_imp: :smiling_imp:

Comunque, solo per curiosità, ho appena provato con l'IDE 1.8.5 e non mi da alcun errore ... sia con uno statement dopo la label (cosa sconsigliata) sia senza.

Guglielmo

Goto esiste in C ma quasi mai é utile e solo in rarrissimi casi di programmazione ad alto livello é saggio e necessario usarlo.

La costruzione di funzioni che ritornano al codice nella posizione dopo la chiamata i il if con blocchi di codice racchiuso con parentesi fa inutile l' uso di goto.

Riguarda l' altra domanda:
Numeri vengono internamente sempre memorizzato in binario. L' esadecimale é un modo di rappresentare il numero quando deve essere visualizzato per l' uomo. L' esadecimale ha il vantaggio di una lunghezza costante per numeri da un Byte (0 a 255). Con un po di esperienza puoi anche a memoria capire quali bit sono 1 e 0 visto che lo devi sapere solo per i numeri da 1 a 15.

Ciao Uwe

Guglielmo, so che è sbagliato e non si usa, ma la trovavo una soluzione molto utile per uscire da un loop dopo un particolare evento che altrimenti non sarebbe stato facile fare...
Comunque ho risolto, in maniera più laboriosa ma ho risolto; resta sempre la curiosità del perchè a me non funziona (ide 1.6.13)....ripeto è solo una curiosità (non mi piace lasciare le cose senza capire il perchè....)
Poi prometto non lo uso più....
Per gli array grazie, effettivamente ho fatto un errore ed una domanda davvero da principiante, ma scrivendo la notte dopo lavoro, famiglia ecc... anche il cervello si spegne... :smiley:
Gli array sono una forza, molto utili....
Grazie per l'aiuto.

manolomao:
Guglielmo, so che è sbagliato e non si usa, ma la trovavo una soluzione molto utile per uscire da un loop dopo un particolare evento che altrimenti non sarebbe stato facile fare...

continue
Break
Return