Bei Überlauf weiterzählen



  • Hi,

    relativ simples Beispiel, aber ich denke zu kompliziert.
    Folgende Situation:

    498 - 0
    499 - 1
    500 - 2
    0 - 3
    1 - 4
    

    Die linke Zahl hat ein Maximum (in dem Fall hier 500), die rechte Zahl wurde via simpler Formel ermittelt (das ist lediglich eine beliebige Zahl minus einem Offset, in dem Beispiel wäre das Offset 498).
    Bei 500 haben wir einen Überlauf und die linke Zahl beginnt bei 0. Wie kann ich jetzt die Reihe rechts richtig weiterzählen?
    Ich kann überprüfen ob die linke Zahl negativ wäre (was 0-498 ja wäre), aber sollte nach Möglichkeit keinen internen Zähler verwenden.

    Ich hoffe es ist verständlich

    Danke



  • Ich verstehe die Frage nicht ganz. Also ich verstehen nicht was daran schwierig ist. D.h. vermutlich ist es schwierig, weil du bestimmte Einschränkungen/Anforderungen hast die die offensichtlichen Möglichkeiten verhindern.

    Du kannst die rechte Zahl einfach mitzählen, also nur die 1. Zahl mit Links - Offset berechnen und dann inkrementieren.
    Oder du kannst den Offset anpassen nachdem ein Überlauf passiert ist ( Offset -= 500 ).



  • Hier würde sich der Modulo-Operator (%) anbieten.



  • Nein.
    Wo sollte sich der anbieten?

    EDIT: Sorry, ich war geistig im falschen Thread.
    Ich verstehe zwar immer noch nicht warum man hier den Modulo Operator benötigen sollte, aber man kann ihn natürlich verwenden, ja.



  • Meinst du das wie bei Ringbuffern mit 501 Elementen?
    Das du in deinem Beispiel irgendwo mittendrin einsteigst und die rechte Zahl der lokale Index ist?

    (Startindex + lokaler_index) % Elementzahl = globaler Index

    So verstehe ich dich.



  • @Namenloser324
    Siehe mein EDIT oben.
    Davon abgesehen...

    Wen sprichst du an? Mich?
    Und bist du der selbe wie "wusu" und/oder "Floak"?
    Ich bin verwirrt.



  • Ich meinte natürlich den Ersteller, dachte das sei klar 😛
    Sonst würde ich @user oder direkt quoten ^^



  • Aha.
    Ich dachte wenn schon ein paar Antworten dastehen wäre es trotzdem üblich ein @user dranzuschreiben, auch wenn man dem OP antwortet.
    Ohne @user bezieht es sich eher auf das was direkt darüber steht - also in diesem Fall meinen Beitrag.



  • Agree to disagree 🙂


Anmelden zum Antworten