Aufgrund zweier 8-Bit Werte Funktion ausführen

Gast #2204751
Lesenswert?

Hallo

ich habe in einem Computersystem zwei 8-Bit Zahlen, deren Werte eben von 
0-255 liegen. Jetzt möchte ich 25 "Fenster" Definieren, welche sozusagen 
vorgeben:
"Liegt Zahl 1 zwischen 127 und 191 UND Zahl 2 zwischen 127 und 191"
Dann mach was...
Und soetwas eben dann ganze 25 mal.

Wie geh ich hier am besten an diese Problemstellung heran?!

Weiß da jemand Rat?
Gast #2204825
Lesenswert?

Hallo Matrix,

da führen sicherlich viele Wege nach Rom. Wenn es schnell gehen soll und 
Speicher keine große Rolle spielt, kannst Du ein Feld von 256 
Funktionszeigern anlegen und den Wert als Index nehmen. Hmmm, bin gar 
nicht sicher, dass es deutlich mehr Speicher braucht als 25 
Fenstervergleiche.

In nehme mal an, die Fenster sind nicht gleichverteilt über die 256 
Werte, oder? Es wird natürlich einfacher, wenn es irgendwelche Wege zur 
Vereinfachung gibt (z.B. Wegschneiden des letzten Bits). Aber das wissen 
wir ja nicht...

Und wie genau es sein muss, wissen wir auch nicht. Wenn Du z.B. auf 
Basis einer Potistellung, die per AD-Wandler eingelesen wird, 
unterschiedliche Dinge tun willst, kannst Du sicherlich einfach den Wert 
0..255 durch 10 teilen und bei 24 kappen. Dann wird das Funktions-Array 
klasse klein. Handlicher ist dann aber vielleicht eine switch-Struktur, 
da kann man doch etwas besser drin schaffen.
1
switch (wert/10){
2
 case 0: tue, was bei 0..9 zu tun ist
3
    break;
4
 case 1: tue, was bei 10..19 zu tun ist
5
    break;
6
...
7
 case 23: tue, was bei 230..239 zu tun ist
8
    break;
9
 default: tue, was bei 240..255 zu tun ist
10
}

Gruß
Jens
Gast #2204840
Lesenswert?

Hups, da habe ich wohl die Aufgabenstellung nicht wirklich gelesen.

Die schlichte Tabelle mit Funktionszeigern entfällt wohl, die weiteren 
Ausführungen lassen sich aber verwenden...

Deine Beispielwerte lassen vermuten, dass nicht wirklich alle Bits 
benötigt werden. Vorher vereinfachen ist auf jeden Fall eine gute Idee 
(Teilen oder Shiften, wenn es aufgeht).

Jens

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren