<?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[Effiziente, nächste zeierpotenz herauszufinden]]></title><description><![CDATA[<p>Hallo, ich bin relativ neu auf dem Gebiet der Bits and Bytes <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="🙂"
    /><br />
Gibt es eine effektive Methode die nächste Zweierpotenz zu einer gegebenen Zahl herauszufinden?<br />
Mein Ansatz sieht so aus, allerdings glaube ich, dass da noch mehr auszuholen ist:</p>
<pre><code class="language-cpp">unsigned int zweierpotenz(unsigned int geg)
{
    unsigned int mask = 1&lt;&lt;31; //nur das höchst wertigste bit ist gesetzt
    for(unsigned int i = 31; i; --i, mask&gt;&gt;=1)
    {
        if(geg&amp;mask)
            return i;
    }
    return ~0; //geg == 0
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/264274/effiziente-nächste-zeierpotenz-herauszufinden</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 03:57:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/264274.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 05 Apr 2010 15:48:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Effiziente, nächste zeierpotenz herauszufinden on Mon, 05 Apr 2010 15:48:25 GMT]]></title><description><![CDATA[<p>Hallo, ich bin relativ neu auf dem Gebiet der Bits and Bytes <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="🙂"
    /><br />
Gibt es eine effektive Methode die nächste Zweierpotenz zu einer gegebenen Zahl herauszufinden?<br />
Mein Ansatz sieht so aus, allerdings glaube ich, dass da noch mehr auszuholen ist:</p>
<pre><code class="language-cpp">unsigned int zweierpotenz(unsigned int geg)
{
    unsigned int mask = 1&lt;&lt;31; //nur das höchst wertigste bit ist gesetzt
    for(unsigned int i = 31; i; --i, mask&gt;&gt;=1)
    {
        if(geg&amp;mask)
            return i;
    }
    return ~0; //geg == 0
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1877889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1877889</guid><dc:creator><![CDATA[Atreyu]]></dc:creator><pubDate>Mon, 05 Apr 2010 15:48:25 GMT</pubDate></item><item><title><![CDATA[Reply to Effiziente, nächste zeierpotenz herauszufinden on Mon, 05 Apr 2010 15:51:24 GMT]]></title><description><![CDATA[<p>Ob nächsthöhere oder nächsttiefere ist zunächst egal. da man ohne viel Aufwand aus der einen das andere bekommt.<br />
Ich würde schauen, wie sich inline-assembler mit BSF oder BSR anfühlt.<br />
Und bei Bitgefummele immer auf <a href="http://graphics.stanford.edu/~seander/bithacks.html" rel="nofollow">http://graphics.stanford.edu/~seander/bithacks.html</a> schauen, ob da nicht was extrem cooles steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1877892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1877892</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 05 Apr 2010 15:51:24 GMT</pubDate></item><item><title><![CDATA[Reply to Effiziente, nächste zeierpotenz herauszufinden on Mon, 05 Apr 2010 15:53:54 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">unsigned int zweierpotenz(unsigned int geg)
{
  geg--;
  geg |= geg &gt;&gt; 1;
  geg |= geg &gt;&gt; 2;
  geg |= geg &gt;&gt; 4;
  geg |= geg &gt;&gt; 8;
  geg |= geg &gt;&gt; 16;
  geg++;

  return geg;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1877894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1877894</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Mon, 05 Apr 2010 15:53:54 GMT</pubDate></item><item><title><![CDATA[Reply to Effiziente, nächste zeierpotenz herauszufinden on Mon, 05 Apr 2010 16:20:31 GMT]]></title><description><![CDATA[<p>Vielen Dank für den Link Volkard! Da stehen wirlich extrem interessante Beiträge <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1877910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1877910</guid><dc:creator><![CDATA[Atreyu]]></dc:creator><pubDate>Mon, 05 Apr 2010 16:20:31 GMT</pubDate></item></channel></rss>