mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Warum wird bei diesem Code so gezählt?


Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

Warum wird bei diesem Code so gezählt?
VKH1 wird wie erwartet mit 1 addiert, aber VKH2 nicht mit 1 wie 
erwartet, sondern mit 2 addiert?

int8_t VKH1=0, VKH2=0,

if (Byte & (1 << Pos))
   VKH1+=1;
   VKH2+=1;

Kann mich jemand aufklären??

Gruß

Autor: Micha B. (chameo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es fehlt vielleicht 'ne Klammer?!

if (Byte & (1 << Pos))
{
   VKH1+=1;
   VKH2+=1;
}

Autor: Lötnix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also wenn nur bei erfüllter if Abfrage gezählt werden soll, fehlen die 
Klammern meiner Meinung nach
if (Byte & (1 << Pos))
   {
   VKH1+=1;
   VKH2+=1;
   }

in Deiner Version wird das erste += nur bei erfüllter if, das zweite 
aber immer ausgeführt.

HTH,
Lötnix

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das erklärt aber nicht, wieso VHK2+ mit 2 addiert wird...

Autor: OliverSo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das erklärt aber nicht, wieso VHK2+ mit 2 addiert wird...

Der Fehler steckt in Zeile 42.
Vielleicht wird er Code obe zweimal durchlaufen, aber nur einmal ist die 
Bedingung wahr?

Fragen über Frage, aber ohne den vollständigen Code ist die Antwort 
immer 42.

Oliver

Autor: Uwe Berger (boerge) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael wrote:
> Das erklärt aber nicht, wieso VHK2+ mit 2 addiert wird...
>
doch, denn du weist ja nicht, wie der Rest des Programmes (vor und nach 
der if-Abfrage) aussieht...

Autor: Thomas L. (tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer sagt denn dass es das wird?

Autor: Lötnix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@michael:
> Das erklärt aber nicht, wieso VHK2+ mit 2 addiert wird...

glaubst Du an einen Bug im Compiler im Zusammenhang mit einer 1 bzw. 
einer 2 im Variablennamen?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Kann mich jemand aufklären??

Das mit den Bienen und Blüten ist so ....

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.