<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Programm rechnet nicht richtig?]]></title><description><![CDATA[<p>Hallo zusammen,<br />
muss ein Programm schreiben, welches an sich auch schon richtig funktioniert. nur eine klitze kleine sache noch nicht - es scheint nicht richtig zu rechnen.... habe eine Integer Variable:</p>
<pre><code class="language-cpp">int a = 1;
</code></pre>
<p>welche mit einer anderen Zahl &quot;verundet&quot; wird - bit-operator AND (&amp;).<br />
da kommt ein ergebins raus - im nächsten durchlauf wird es geshiftet:</p>
<pre><code class="language-cpp">a = a &lt;&lt; 1;
</code></pre>
<p>...<br />
in diesem Falle ist a ja nicht mehr 1, sondern zwei (00000001 &lt;&lt; 1 = 00000010) ... da ich aber 3 brauche sage ich dann:</p>
<pre><code class="language-cpp">a = a + 1;
</code></pre>
<p>bei der ausgabe der verundung müsste er ja dann aber eigentlich mit 3 anfangen, er fängt aber bei 1 an ......<br />
weiss jemand, was da falsch sein könnte?</p>
<p>MfG<br />
MWJK</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164081/programm-rechnet-nicht-richtig</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 08:35:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164081.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 04 Nov 2006 20:27:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programm rechnet nicht richtig? on Sat, 04 Nov 2006 20:27:06 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
muss ein Programm schreiben, welches an sich auch schon richtig funktioniert. nur eine klitze kleine sache noch nicht - es scheint nicht richtig zu rechnen.... habe eine Integer Variable:</p>
<pre><code class="language-cpp">int a = 1;
</code></pre>
<p>welche mit einer anderen Zahl &quot;verundet&quot; wird - bit-operator AND (&amp;).<br />
da kommt ein ergebins raus - im nächsten durchlauf wird es geshiftet:</p>
<pre><code class="language-cpp">a = a &lt;&lt; 1;
</code></pre>
<p>...<br />
in diesem Falle ist a ja nicht mehr 1, sondern zwei (00000001 &lt;&lt; 1 = 00000010) ... da ich aber 3 brauche sage ich dann:</p>
<pre><code class="language-cpp">a = a + 1;
</code></pre>
<p>bei der ausgabe der verundung müsste er ja dann aber eigentlich mit 3 anfangen, er fängt aber bei 1 an ......<br />
weiss jemand, was da falsch sein könnte?</p>
<p>MfG<br />
MWJK</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168532</guid><dc:creator><![CDATA[MWJK]]></dc:creator><pubDate>Sat, 04 Nov 2006 20:27:06 GMT</pubDate></item><item><title><![CDATA[Reply to Programm rechnet nicht richtig? on Sat, 04 Nov 2006 20:40:49 GMT]]></title><description><![CDATA[<p>1. Der Debugger ist dein Freund.<br />
2. Zeig mal bisschen mehr Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168536</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Sat, 04 Nov 2006 20:40:49 GMT</pubDate></item><item><title><![CDATA[Reply to Programm rechnet nicht richtig? on Sat, 04 Nov 2006 20:45:47 GMT]]></title><description><![CDATA[<p>Meine Variablen die auch alle verwendet werden:</p>
<pre><code class="language-cpp">byte a = 1;
byte b = 63;
byte c = 1;
byte zahl = 0;
int zu = 0;
String Zahlen2 = &quot;&quot;;
void Zahlen (void);
int clicked = 0;
int clicked2 = 0;
String zahl1 = &quot;&quot;;
void binzudez();
int as1, as2, as3, as4, as5, as6;
</code></pre>
<p>Die Funktion die die ersten Werte liefert:</p>
<pre><code class="language-cpp">Form1-&gt;Label4-&gt;Caption = &quot;&quot;;
   for(zahl = 0; zahl &lt; 64; zahl++){
      zu++;
      if(zahl &amp; a){
         Form1-&gt;Label4-&gt;Caption = Form1-&gt;Label4-&gt;Caption + &quot; &quot; + zahl;
      }
      if(zu % 10 == 0){
         Form1-&gt;Label4-&gt;Caption = Form1-&gt;Label4-&gt;Caption + &quot;\n&quot;;
      }
   }
</code></pre>
<p>dann kann man wählen - ja oder nein (praktisch zahl dabei oder nicht) - bei nein wird diese funktion wieder verwendet nur mit:</p>
<pre><code class="language-cpp">a = a &lt;&lt; 1;
</code></pre>
<p>womit a von 1 auf 2 springt.</p>
<p>bei Ja muss a praktisch von 1 auf 3 springen, was ich folgendermaßen gelöst habe:</p>
<pre><code class="language-cpp">a = a &lt;&lt; 1;
a = a + 1;
</code></pre>
<p>mehr text ists eigentlich nicht, hoffe dass das ein bisschen mehr aussagt als das eben.</p>
<p>MfG<br />
MWJK</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168540</guid><dc:creator><![CDATA[MWJK]]></dc:creator><pubDate>Sat, 04 Nov 2006 20:45:47 GMT</pubDate></item><item><title><![CDATA[Reply to Programm rechnet nicht richtig? on Sat, 04 Nov 2006 21:19:58 GMT]]></title><description><![CDATA[<p>MWJK schrieb:</p>
<blockquote>
<p>bei der ausgabe der verundung müsste er ja dann aber eigentlich mit 3 anfangen, er fängt aber bei 1 an</p>
</blockquote>
<p>Welche Ausgabe?<br />
Die Variable <em>zahl</em> wird durch die &quot;Verundung&quot; in der if-Abfrage jedenfalls nicht verändert, sie behält ihren Wert,</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168557</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Sat, 04 Nov 2006 21:19:58 GMT</pubDate></item><item><title><![CDATA[Reply to Programm rechnet nicht richtig? on Sat, 04 Nov 2006 21:39:18 GMT]]></title><description><![CDATA[<p>Ok jetzt hast du zwar mehr von deinem Quelltext preis gegeben aber eigentlich nur unwichtige Sachen.<br />
Wenn überhaupt interessiert mich der Code der um die Operationen die du mit deiner Variablen a machst herum steht und nicht nur einzelne Fetzen daraus.</p>
<p>Achja:<br />
Benütz den Debugger(F7)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168559</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Sat, 04 Nov 2006 21:39:18 GMT</pubDate></item><item><title><![CDATA[Reply to Programm rechnet nicht richtig? on Sat, 04 Nov 2006 22:11:21 GMT]]></title><description><![CDATA[<p>Jansen schrieb:</p>
<blockquote>
<p>MWJK schrieb:</p>
<blockquote>
<p>bei der ausgabe der verundung müsste er ja dann aber eigentlich mit 3 anfangen, er fängt aber bei 1 an</p>
</blockquote>
<p>Welche Ausgabe?<br />
Die Variable <em>zahl</em> wird durch die &quot;Verundung&quot; in der if-Abfrage jedenfalls nicht verändert, sie behält ihren Wert,</p>
</blockquote>
<p>die ausgabe im label:</p>
<pre><code class="language-cpp">Form1-&gt;Label4-&gt;Caption = Form1-&gt;Label4-&gt;Caption + &quot; &quot; + zahl;
</code></pre>
<p>MfG<br />
MWJK</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168581</guid><dc:creator><![CDATA[MWJK]]></dc:creator><pubDate>Sat, 04 Nov 2006 22:11:21 GMT</pubDate></item><item><title><![CDATA[Reply to Programm rechnet nicht richtig? on Sat, 04 Nov 2006 22:15:06 GMT]]></title><description><![CDATA[<p>rean schrieb:</p>
<blockquote>
<p>Ok jetzt hast du zwar mehr von deinem Quelltext preis gegeben aber eigentlich nur unwichtige Sachen.<br />
Wenn überhaupt interessiert mich der Code der um die Operationen die du mit deiner Variablen a machst herum steht und nicht nur einzelne Fetzen daraus.</p>
<p>Achja:<br />
Benütz den Debugger(F7)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</p>
</blockquote>
<p>Das is alles wichtig im Quelltext und alles von a is komplett mit bei, hier a nochmal einzeln:</p>
<pre><code class="language-cpp">byte a = 1; //global
      if(zahl &amp; a){ //durchläufe
         Form1-&gt;Label4-&gt;Caption = Form1-&gt;Label4-&gt;Caption + &quot; &quot; + zahl;
      }
   a = a &lt;&lt; 1; //für jeden weiteren durchlauf für ja und nein
   a = a + 1; //für jeden weiteren durchlauf nur für ja
</code></pre>
<p>Gruß<br />
MWJK</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168582</guid><dc:creator><![CDATA[MWJK]]></dc:creator><pubDate>Sat, 04 Nov 2006 22:15:06 GMT</pubDate></item><item><title><![CDATA[Reply to Programm rechnet nicht richtig? on Sun, 05 Nov 2006 11:07:05 GMT]]></title><description><![CDATA[<p>irgendwie scheint da in der &quot;verundung&quot; was falsch zu sein ....<br />
hab das ganze zwar jetzt so:</p>
<pre><code class="language-cpp">if((zahl &amp; a) == a){
   //Ausgabe im Label4
}
</code></pre>
<p>aber es scheint nich so ganz richtig zu sein ........</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168738</guid><dc:creator><![CDATA[MWJK]]></dc:creator><pubDate>Sun, 05 Nov 2006 11:07:05 GMT</pubDate></item><item><title><![CDATA[Reply to Programm rechnet nicht richtig? on Sun, 05 Nov 2006 18:44:25 GMT]]></title><description><![CDATA[<p>Keine Ahnung, was du dir von dem <strong>&amp;</strong> erhoffst.<br />
Lies doch noch mal nach, was das <em>bitwise AND</em> eigentlich macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169089</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Sun, 05 Nov 2006 18:44:25 GMT</pubDate></item><item><title><![CDATA[Reply to Programm rechnet nicht richtig? on Sun, 05 Nov 2006 18:53:32 GMT]]></title><description><![CDATA[<p>Jansen schrieb:</p>
<blockquote>
<p>Keine Ahnung, was du dir von dem <strong>&amp;</strong> erhoffst.<br />
Lies doch noch mal nach, was das <em>bitwise AND</em> eigentlich macht.</p>
</blockquote>
<p>was das &amp; macht weiß ich ... da is nicht das problem und das erfüllt in diesem zusammenhang auch seine funktion - es soll einfach das bit prüfen, ob die zahl darin liegt - oder nicht... und wenn bei der zahl das bit das geprüft wird gesetzt ist, dann soll er diese zahl im label4 ausgeben, deswegen &quot;verunde&quot; ich zahl mit a (a ist das bit das geprüft werden soll und zahl die zahl bei der geprüft werden soll - die sich durch die for-schleife ändert).</p>
<p>aber irgendwie is an der ausgabe was falsch ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169098</guid><dc:creator><![CDATA[MWJK]]></dc:creator><pubDate>Sun, 05 Nov 2006 18:53:32 GMT</pubDate></item><item><title><![CDATA[Reply to Programm rechnet nicht richtig? on Mon, 06 Nov 2006 12:13:12 GMT]]></title><description><![CDATA[<p>Ich glaube, du verstehst nicht ganz was das bitweise AND eigentlich macht, möglicherweise meinst du den %-Operator.</p>
<p>Wenn a 3 ist, dann fängt die Ausgabe der Zahlen bei 1 und nicht bei 3 an, das ist durchaus richtig so. Weil:<br />
(1&amp;3)==1<br />
Und 1 wird as true ausgewertet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169540</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Mon, 06 Nov 2006 12:13:12 GMT</pubDate></item><item><title><![CDATA[Reply to Programm rechnet nicht richtig? on Mon, 06 Nov 2006 14:25:47 GMT]]></title><description><![CDATA[<p>Nanyuki schrieb:</p>
<blockquote>
<p>Ich glaube, du verstehst nicht ganz was das bitweise AND eigentlich macht, möglicherweise meinst du den %-Operator.</p>
<p>Wenn a 3 ist, dann fängt die Ausgabe der Zahlen bei 1 und nicht bei 3 an, das ist durchaus richtig so. Weil:<br />
(1&amp;3)==1<br />
Und 1 wird as true ausgewertet.</p>
</blockquote>
<p>sry, aber ich weiss, was das bitwise AND macht.</p>
<p>wenn ich zahl (in diesem falle zwischen 0 und 64 ist) mit a (in diesem falle 0 und wird dann geshiftet) &quot;verunde&quot; also mit bitwise AND vergleiche und wenn das 1 ist dann die Ausgabe mache, dann kann es ja nur so sein ...<br />
wenn also zahl 5 is '00000101' und a ist 1 '00000001', dann wird es ausgegeben ... wenn zahl allerdings 6 wäre '00000110' und a 1 '00000001', dann wird die zahl nicht ausgegeben, da der vergleich mit bitwise AND 0 ergibt.</p>
<p>Denke nach dieser Erklärung dürfte auch jedem klar sein, dass ich weiß wie bitwise AND funktioniert und mittlerweile habe ich auch das Programm zum laufen gebracht - es war ein Rechenfehler von mir, den ich mitprogrammiert habe. allerdings wie gesagt ein rechenfehler und kein Programmierfehler.</p>
<p>Gruß<br />
MWJK</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169685</guid><dc:creator><![CDATA[MWJK]]></dc:creator><pubDate>Mon, 06 Nov 2006 14:25:47 GMT</pubDate></item></channel></rss>