<?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[Zählen der Bits einer int-Zahl, die 1 sind]]></title><description><![CDATA[<p>Hallo!</p>
<p>Verzweifel grad an einer aufgabe, die eigentlich gar nicht so schwer sein dürfte. es soll vom benutzer eine ganze zahl eingegeben werden und unter anderem deren bits gezählt werden, die gleich 1 sind. meine lösung dessen sieht folgendermaßen aus:</p>
<p>for( int i=0, BitsGleich1=0; i&lt;32; i++) {<br />
if( (ganzeZahl%2)==1 ) {<br />
BitsGleich1++;<br />
}<br />
ganzeZahl &gt;&gt; 1;<br />
}</p>
<p>leider liefert mir das programm für BitsGleich1 aber immer einen wert von 4246800. die schleife wird aber doch nur 32 mal durchlaufen. steh wirklich auf dem schlauch <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>kann mir vielleicht jemand helfen??<br />
lg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/251832/zählen-der-bits-einer-int-zahl-die-1-sind</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 06:46:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/251832.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 Oct 2009 12:59:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zählen der Bits einer int-Zahl, die 1 sind on Sun, 11 Oct 2009 12:59:55 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Verzweifel grad an einer aufgabe, die eigentlich gar nicht so schwer sein dürfte. es soll vom benutzer eine ganze zahl eingegeben werden und unter anderem deren bits gezählt werden, die gleich 1 sind. meine lösung dessen sieht folgendermaßen aus:</p>
<p>for( int i=0, BitsGleich1=0; i&lt;32; i++) {<br />
if( (ganzeZahl%2)==1 ) {<br />
BitsGleich1++;<br />
}<br />
ganzeZahl &gt;&gt; 1;<br />
}</p>
<p>leider liefert mir das programm für BitsGleich1 aber immer einen wert von 4246800. die schleife wird aber doch nur 32 mal durchlaufen. steh wirklich auf dem schlauch <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>kann mir vielleicht jemand helfen??<br />
lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1790915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1790915</guid><dc:creator><![CDATA[newbie007]]></dc:creator><pubDate>Sun, 11 Oct 2009 12:59:55 GMT</pubDate></item><item><title><![CDATA[Reply to Zählen der Bits einer int-Zahl, die 1 sind on Sun, 11 Oct 2009 13:06:52 GMT]]></title><description><![CDATA[<p>Initialisiere BitsGleich1 vor der Schleife, sonst überdeckt der neue int BitsGleich1, den du im Schleifenkopf erstellt, die äußere Instanz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1790922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1790922</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Sun, 11 Oct 2009 13:06:52 GMT</pubDate></item><item><title><![CDATA[Reply to Zählen der Bits einer int-Zahl, die 1 sind on Sun, 11 Oct 2009 13:08:17 GMT]]></title><description><![CDATA[<p>Außerdem wird ganzeZahl nicht wirklich nach rechts geshifted:</p>
<pre><code class="language-cpp">ganzeZahl &gt;&gt; 1;
</code></pre>
<pre><code class="language-cpp">int result = 0;
for ( ; x &gt; 0; x &gt;&gt;= 1 )
	result += x &amp; 1;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1790923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1790923</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 11 Oct 2009 13:08:17 GMT</pubDate></item><item><title><![CDATA[Reply to Zählen der Bits einer int-Zahl, die 1 sind on Sun, 11 Oct 2009 13:16:15 GMT]]></title><description><![CDATA[<p>ok, das mit der vorherigen initialisierung hat schon mal was genützt. danke!<br />
jetzt erhalte ich zb bei eingabe der ganzen zahl 3 den bitsgleich1-wert 1 und bei eingabe von 4 den wert 0, weshalb es wohl auch stimmt, dass die verschiebung nicht stattfindet. aber ich verstehe nicht, warum das so ist!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1790927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1790927</guid><dc:creator><![CDATA[newbie007]]></dc:creator><pubDate>Sun, 11 Oct 2009 13:16:15 GMT</pubDate></item><item><title><![CDATA[Reply to Zählen der Bits einer int-Zahl, die 1 sind on Sun, 11 Oct 2009 13:19:15 GMT]]></title><description><![CDATA[<p>newbie007 schrieb:</p>
<blockquote>
<p>ok, das mit der vorherigen initialisierung hat schon mal was genützt. danke!<br />
jetzt erhalte ich zb bei eingabe der ganzen zahl 3 den bitsgleich1-wert 1 und bei eingabe von 4 den wert 0, weshalb es wohl auch stimmt, dass die verschiebung nicht stattfindet. aber ich verstehe nicht, warum das so ist!</p>
</blockquote>
<p>Weil der &gt;&gt; Operator den ursprünglichen Wert nicht verändert. Du musst den neuen Wert zuweissen oder gleich &gt;&gt;= verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1790931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1790931</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 11 Oct 2009 13:19:15 GMT</pubDate></item><item><title><![CDATA[Reply to Zählen der Bits einer int-Zahl, die 1 sind on Sun, 11 Oct 2009 13:20:57 GMT]]></title><description><![CDATA[<p>ok, habe statt</p>
<p>ganzeZahl &gt;&gt; 1</p>
<p>jetzt einfach</p>
<p>ganzeZahl &gt;&gt;= 1</p>
<p>geschrieben und jetzt funktionierts! Danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1790932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1790932</guid><dc:creator><![CDATA[newbie007]]></dc:creator><pubDate>Sun, 11 Oct 2009 13:20:57 GMT</pubDate></item><item><title><![CDATA[Reply to Zählen der Bits einer int-Zahl, die 1 sind on Sun, 11 Oct 2009 14:03:18 GMT]]></title><description><![CDATA[<p>Es gibt da noch diverse &quot;BitHacks&quot;, u.a. auch welche zum Zählen der gesetzten Bits. Beispiel:</p>
<pre><code class="language-cpp">int count(uint32_t x)
{
  x -=  (x &amp; 0xAAAAAAAA) &gt;&gt; 1;
  x  = ((x &amp; 0xCCCCCCCC) &gt;&gt; 2) + (x &amp; 0x33333333);
  x  = ((x &amp; 0xF0F0F0F0) &gt;&gt; 4) + (x &amp; 0x0F0F0F0F);
  x += (x &gt;&gt; 16);
  x += (x &gt;&gt;  8);
  return (x &amp; 0xFF);
}
</code></pre>
<p>Es sieht komplizierter aus, könnte aber u.U. schneller sein.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1790950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1790950</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Sun, 11 Oct 2009 14:03:18 GMT</pubDate></item></channel></rss>