<?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[Bitoperator &amp;amp;]]></title><description><![CDATA[<p>Hallo Miteinander,</p>
<p>ich sitze gerade an einer Aufgabe aus einer Altklausr (ich bin Elektrotechnikstudent und bald steht die C++ Klausur an), an der ich so langsam verzweifle. Ich verstehe bei diesem Programm den Operator &quot;&amp;&quot; in der if-Abfrage nicht so richtig. Auch etliche Überlegungen und Umrechnungen ins Binärsystem, schrittweises durchgehen der Schleife auf einem Blatt Papier und Recherche im Skript haben mir nicht weitergeholfen. Ich weiss, dass der Operator &quot;&amp;&quot; zwei Binärzahlen addiert und, dass die Funktion &quot;bit&quot; aus einem dezimalen Wert einen binären Wert berechnet. Wann ist die if-Abfrage true, wann nicht? Wie sind die Vorraussetzungen der Variablen &quot;u&quot; und &quot;t&quot; dafür?<br />
Anbei der Quellcode.</p>
<p>Vielen Dank für Eure Mühe im Voraus.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;
void bit(unsigned int u){
  int t;
  for(t=128;t&gt;0;t=t/2)
    if(u&amp;t)
      cout &lt;&lt; &quot;1&quot;;
    else   
      cout &lt;&lt; &quot;0&quot;;
  cout &lt;&lt; &quot;\n&quot;;
}
int main(int argc, char *argv[]){

bit(123);

system(&quot;pause&quot;);
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/262354/bitoperator-amp</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 18:12:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/262354.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Mar 2010 18:01:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bitoperator &amp;amp; on Thu, 04 Mar 2010 18:01:02 GMT]]></title><description><![CDATA[<p>Hallo Miteinander,</p>
<p>ich sitze gerade an einer Aufgabe aus einer Altklausr (ich bin Elektrotechnikstudent und bald steht die C++ Klausur an), an der ich so langsam verzweifle. Ich verstehe bei diesem Programm den Operator &quot;&amp;&quot; in der if-Abfrage nicht so richtig. Auch etliche Überlegungen und Umrechnungen ins Binärsystem, schrittweises durchgehen der Schleife auf einem Blatt Papier und Recherche im Skript haben mir nicht weitergeholfen. Ich weiss, dass der Operator &quot;&amp;&quot; zwei Binärzahlen addiert und, dass die Funktion &quot;bit&quot; aus einem dezimalen Wert einen binären Wert berechnet. Wann ist die if-Abfrage true, wann nicht? Wie sind die Vorraussetzungen der Variablen &quot;u&quot; und &quot;t&quot; dafür?<br />
Anbei der Quellcode.</p>
<p>Vielen Dank für Eure Mühe im Voraus.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;
void bit(unsigned int u){
  int t;
  for(t=128;t&gt;0;t=t/2)
    if(u&amp;t)
      cout &lt;&lt; &quot;1&quot;;
    else   
      cout &lt;&lt; &quot;0&quot;;
  cout &lt;&lt; &quot;\n&quot;;
}
int main(int argc, char *argv[]){

bit(123);

system(&quot;pause&quot;);
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1864418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864418</guid><dc:creator><![CDATA[lolbob]]></dc:creator><pubDate>Thu, 04 Mar 2010 18:01:02 GMT</pubDate></item><item><title><![CDATA[Reply to Bitoperator &amp;amp; on Thu, 04 Mar 2010 18:08:10 GMT]]></title><description><![CDATA[<pre><code>1111011 = 123
------------------------------
128 = 10000000 &amp; 1111011 = 0
64  =  1000000 &amp; 1111011 = 1
32  =   100000 &amp; 1111011 = 1
16  =    10000 &amp; 1111011 = 1
8   =     1000 &amp; 1111011 = 1
4   =      100 &amp; 1111011 = 0
2   =       10 &amp; 1111011 = 1
1   =        1 &amp; 1111011 = 1
</code></pre>
<p>kpl. ob das so verständlich wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864422</guid><dc:creator><![CDATA[noob_lolo]]></dc:creator><pubDate>Thu, 04 Mar 2010 18:08:10 GMT</pubDate></item><item><title><![CDATA[Reply to Bitoperator &amp;amp; on Thu, 04 Mar 2010 18:18:18 GMT]]></title><description><![CDATA[<p>lolbob schrieb:</p>
<blockquote>
<p>Ich weiss, dass der Operator &quot;&amp;&quot; zwei Binärzahlen addiert</p>
</blockquote>
<p>Dann weißt du falsch. operator&amp; ist ein binäres UND, d.h. jedes Bit des Ergebnisses entspricht dem logischen UND der entsprechenden Bits der beiden argumente. Das ist was völlig anderes als die Addition. (Binärzahlen gibts übrigens nicht wirklich, das Zahlensystem ist eine Darstellungsangelegenheit, die rein garnichts mit der internen Repräsentation zu tun hat)</p>
<p>Beispiel:<br />
2&amp;3 = 2, weils binär dargestellt 0010 &amp; 0011 ist, und nur das vorletze Bit ist bei beiden gesetzt, also ist 0010 = 2 das Ergebnis.</p>
<p>317 &amp; 84 = 100111101 &amp; 001010100 = 000010100 = 20</p>
<p>Vielleicht machts bei dir ja jetzt sinn...<br />
Das Argument der if-Abfrage ist ein int, und das entspricht genau dann false, wenn bei dem &amp; 0 rauskommt, ansonsten ergibts true.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864428</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 04 Mar 2010 18:18:18 GMT</pubDate></item><item><title><![CDATA[Reply to Bitoperator &amp;amp; on Thu, 04 Mar 2010 18:20:25 GMT]]></title><description><![CDATA[<p>Edit, zu spaet, pumuckl war schneller <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>lolbob schrieb:</p>
<blockquote>
<p>Ich weiss, dass der Operator &quot;&amp;&quot; zwei Binärzahlen addiert und,</p>
</blockquote>
<p>Nein. Der Operator '&amp;' addiert nicht, er berechnet das bitweise AND.<br />
0 AND 0 = 0<br />
0 AND 1 = 0<br />
1 AND 0 = 0<br />
1 AND 1 = 1<br />
Das wird auf jedes Bit der Zahl angewandt. Das ist ein unterschied zu addieren.</p>
<p>Das resultat ist nur dann eins, wenn beide Bits eins sind, deshalb kannst du das verwenden um einzelne Bits aus einer Zahl auszulesen. noob_lolo hat das ja schoen aufgeschrieben :).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864429</guid><dc:creator><![CDATA[lustig]]></dc:creator><pubDate>Thu, 04 Mar 2010 18:20:25 GMT</pubDate></item><item><title><![CDATA[Reply to Bitoperator &amp;amp; on Thu, 04 Mar 2010 18:22:23 GMT]]></title><description><![CDATA[<p>Ja, das hat mir schon mal etwas geholfen den Ablauf besser zu verstehen, Danke für die schnelle Antwort.<br />
Aber wieso ist 10000000 &amp; 1111011 = 0 und 1000000 &amp; 1111011 = 1 ?<br />
Für mich ist 10000000 &amp; 1111011 = 11111011 also dezimal 251, falls der Operator &quot;&amp;&quot; wie der mathematische Operator &quot;+&quot; verwendet wird.<br />
Wo ist da mein Fehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864433</guid><dc:creator><![CDATA[lolbob]]></dc:creator><pubDate>Thu, 04 Mar 2010 18:22:23 GMT</pubDate></item><item><title><![CDATA[Reply to Bitoperator &amp;amp; on Thu, 04 Mar 2010 18:23:31 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>(Binärzahlen gibts übrigens nicht wirklich, das Zahlensystem ist eine Darstellungsangelegenheit, die rein garnichts mit der internen Repräsentation zu tun hat)</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> du zerstörst gerade alle meine träume <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864434</guid><dc:creator><![CDATA[noobLolo]]></dc:creator><pubDate>Thu, 04 Mar 2010 18:23:31 GMT</pubDate></item><item><title><![CDATA[Reply to Bitoperator &amp;amp; on Thu, 04 Mar 2010 18:23:44 GMT]]></title><description><![CDATA[<p>Danke, ich war wohl auch zu langsam...;)<br />
Ich habs jetzt endlich verstanden, Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1864435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1864435</guid><dc:creator><![CDATA[lolbob]]></dc:creator><pubDate>Thu, 04 Mar 2010 18:23:44 GMT</pubDate></item></channel></rss>