Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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!

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

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

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).

Prima!

Da kann ich mit arbeiten ;)

Danke für dei SCHNELLE Hilfe!!

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...

Programmiertechnisch in etwa :

int summe; // was auch immer

for (int g=5;g>0;g--)

{

if (summe > 2^g)

{

// tun was du tun willst wenn Schalter mit Nr. (6-g) gesetzt ist

summe -= 2^g;

}

}

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.