Array-Eine Technische Frage Bitte !

can

Mitglied
Hallo leute


Ich möchte die einzer (1) im (bTabelle1) schrittweise verschieben.



So das die einzer (1) am anfang des Arry wieder erscheinen

bool bTabelle1 [12] = {0,0,0,0,0,1,0,0,0,1,0,1};
bool bNoteName2 [12] = {0,0,0,0,0,0,0,0,0,0,0,0};

bTabelle1 um 1 verschoben
bool bNoteName2 [12] = {1,0,0,0,0,0,1,0,0,0,1,0};

bTabelle1 um 3 verschoben

bool bNoteName2 [12] = {1,0,1,0,0,0,0,0,1,0,0,0};

wie mache ich so was am besten?

Grüße Can
:rolleyes:
 
Und wer benutzt für arrays?

1.) is ein bool array speicherverschwendung. und zwar im faktor 1:8
2.) läst sich da mit einer Flag Variable besser arbeiten...

int fData = 0; //32 bits leer räumen
fData |= 1<<5; // das 6. bit setzen. (true)
fData |= 1<<8; //das 9. bit setzen. (true)
fData &= ~(1<<5); //das 6. bit löschen (false)

if(fData &= (1<<8)) //prüfen ob das 9.bit gesetzt ist.

Und jetzt kannst du auch die gewünschten operationen durchführen
int fData2 = 0, fData2 = 0;
fData2 = fData << 3; //alle bits im 3 stellen nach links verschieben
fData3 = fData >> 5; //alle bits um 5 stellen nach rechts verschieben

Mehr zu den bedeutungen von <<, >>, &, |, ~, ^ findest zu unter dem begiff Binäroperatoren.
<< = shilft left
>> = shirft right
& = and
| = or
^ = xor
~ = not
 
Danke fürs Antworten! chibisuke



Ich möchte ein Akkord-Erkennung programmiren.

ich habe mir gedacht ich deffiniere erst Alle Akkord Typen in C-note.
Code:
const bool C_Dim [size]= {1,0,0,1,0,1,0,0,0,0,0,0}; 
const bool C_Sus2 [size]= {1,1,0,0,0,0,1,0,0,0,0,0}; 
const bool C_Moll [size]= {1,0,1,0,0,0,1,0,0,0,0,0}; 
const bool C_Dur [size]= {1,0,0,1,0,0,1,0,0,0,0,0}; 
const bool C_Sus4 [size]= {1,0,0,0,1,0,1,0,0,0,0,0}; usw.

wenn ich jetz 3 Tasten Am Kayboard Tastatur Drücke werden die
Nullen in der Tabel[ size] eine eins (1).

So Jetz möchte ich prüfen ob die grade gedrückten 3 Tasten in irgend
einer GrundTon art existieren. oder nicht existieren und mir den Namen des GrundTons und den AkkodNamem anzeigen


Bin kein programmirer.

ich weiss auch nicht ob das der richtige weg ist ich habe mir gedacht so müsste es funktioniren.

Kannst du mir da ein rat geben?
 
Nun, wie ich schon gesagt hab, benutz flags anstatt boolsche arrays.

bis 8 werte kannst du in unsigned char speichern, 16 in unsigned short, 32 in unsigned int bzw. unsigned long und für 64 werte gibt __int64 ebenfalls unsigned.

Wenn du darüber hinaus gehen willst, musst du es aufteilen...

Am besten guckst du ob du n tutorials zur benutzung von FLAGS und zu Binär Operatoren findest.
 
Zurück