Zum Inhalt springen

Welche Checkbox ist aktiviert??


Empfohlene Beiträge

Geschrieben

Hallo!

Ich habe eine Maske mit 6 Checkboxen.

In 2er Potenzen sind Werte zu geordnet.

Also checkbox 1 = 1 checkbox 2 = 2 checkbox 3 = 4 checkbox 4 = 8 checkbox 5 = 16 checkbox 6 = 32

Wenn nun zum Beispiel die erste und letzte aktiviert sind, habe ich SUMME 33.

Sind alle aktiviert, habe ich 63.

Wie kann ich an hand dieser Summe sehen, welche Checkboxen aktiviert sind und welche nicht?

Die Programmiersprache ist egal, es geht um das Problem an sich!

Geschrieben

Die Summe wandelst Du in eine Binärzahl um.

Über die Zustände 1 und 0 kannst Du dann erkennen, welche Boxen aktiviert sind. Du musst nur beachten, dass bei der Binärzahl der kleinste Wert rechts steht.

Beispiele:

Summe 33, Binär 100001 = erste und letzte aktiviert

Summe 18, Binär 010010 = zweite und vorletzte aktiviert

Summe 8, Binar 001000 = vierte Box ist aktiviert

Geschrieben

Hi,

also so wie ich das sehe musst du eine Schleife nehmen, in der du die einzelnen Potenzen von der Gesamtsumme abziehst und prüfst, ob die Summe - Potenzwert größer als 0 ist. Dabei musst du bei der größten beginnen. Zur einfachheit habe ich mal bei Checkbox 0 begonnen (Wegen der Potenzen)

Bsp:

Checkbox 5 - 3 - 2 - 0 sind aktiviert: Summe = 45

45 - 2^5 = 13 -> >=0, also ist die Box aktiviert

13 - 2^4 < 0 -> Box ist nicht aktiviert

13 - 2^3 = 5 -> >=0, aktiviert

5 - 2^2 = 1 -> >=0, aktiviert

1- 2^1 > 0 -> Box ist nicht aktiviert

1 - 2^0 = 0 -> >=0, aktiviert

Gruß

dejay82

Geschrieben
45 - 2^5 = 13 -> >=0, also ist die Box aktiviert

13 - 2^4 < 0 -> Box ist nicht aktiviert

13 - 2^3 = 5 -> >=0, aktiviert

5 - 2^2 = 1 -> >=0, aktiviert

1- 2^1 > 0 -> Box ist nicht aktiviert

1 - 2^0 = 0 -> >=0, aktiviert

Das erinnert mich sehr stark an das Prinzip der fortgesetzten Division:

45 : 32 = 1 R 13

13 : 16 = 0 R 13

13 : 8 = 1 R 5

5 : 4 = 1 R 1

1 : 2 = 0 R 1

1 : 1 = 1 R 0

ergibt von unten nach oben gelesen die Bitkombination 101101, also 1., 3., 4. und 6. Box aktiviert.

Diese Methode kannst Du zur Umrechnung in jedwedes Zahlensystem verwenden, denn es wird immer durch die Potenzen der Basis des Zahlensystem geteilt (im Binärsystem also 2^5 = 32, 2^4 = 16, für Oktalsystem 8: 8^3 = 512, 8^2 = 64).

Geschrieben
Das kommt immer drauf an ob das verwendete System mit Little oder Big Endian arbeitet.

Stimmt, aber ohne ein System zu berücksichtigen, wie es der Ersteller gewünscht hat, sieht eine Binärzahl doch so aus wie ich es beschrieben habe, oder? ;)

  • 4 Wochen später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...