Assertions mit Divisionsbedingung

Gast #4835464
Hallo liebe Community,

ich habe folgende Frage:
Ich habe einen Quellcode, der "nur" unter der Bedingung arbeitet, das 
Input_Länge/Output_Länge = natürliche Zahl.
Die beiden Längen sind als Generics definiert.
Ich würde jetzt gerne einen Error werfen lassen, also praktisch eine 
assertion machen, wenn diese Bedingung verletzt wird.
Ist das irgendwie sinnvoll möglich ? Wie müsste das aussehen ?

Viele Grüße & Danke im vorraus
Gast #4835476
"Generics" sagt mir nichts.  Ich würde die Fehlerbehandlung auch so 
machen, dass nicht einfach alles abgebrochen wird, aber wenn es denn 
sein muss:

assert((Input_Länge/Output_Länge)*Output_Länge == Input_Länge);

(unter der Annahme, dass Input_Länge und Output_Länge Ganzzahl-Typen 
haben)
Gast #4835501
Das geht auch mit dem "mod"-Operator. Wenn der Quotient eine natürliche 
Zahl ist, dann ist der Rest gleich Null.
Soweit es mich betrifft, scheint mir das "offensichtlicher" als die 
Division mit anschliessender Multiplikation.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.