Frage zu "%" im Code



  • void printdump(uint16_t n) {
    
      for (unsigned int i = 0; i < n; i++) {
        if (i % 20 == 0) Serial.println();
        printhex(sml[i]);
      }
      Serial.println(" Z451");//Ro20260711
    }
    

    Ich programiere mit Arduino und habe den Code in einem funktionierenden Beispiel gesehen.
    In der "if" Zeile wird alle 20 Zeichen ein "CR" gesendet.
    Kann mir mal bitte jemand erklären, wie das "(i % 20 == 0)" funktioniert. Für mich ist das die kürzeste schreibweise, die ich je gesehen habe. Wenn ich das zu programmiert hätte, dann wär das viel umfangreicher, da "i /20 == 0" der Rest == Null sein muss. Bei LabView gibt es dazu eine Funktion, die den Rest ausgibt. Bezeichnet hier "%" den Rest?
    Die Funktion "printhex" sorgt dafür, dass immer 2 Zeichen gedruckt werden, z.B. "F" = "0F".
    Vielen Dank
    Hanspeter Roth



  • @Rothhp Das "%" Zeichen ist die Modulo Operation, also der Rest der Division.


Anmelden zum Antworten