<?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[andere lösung für schleife]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>mich würde mal interessieren, ob der folgende Codeabschnitt von mir nicht vielelicht anders gelöst werden kann, z.B. mit einem Logarithmus.</p>
<pre><code class="language-cpp">int var1 = 0;
int var2 = 34816;

while(var2 &gt; 1) {
  var1 += 1;
  var2 /= 2;
}
</code></pre>
<p>Ich weiß alerdigns nicht ob meine Lösung dazu stimmt.</p>
<p>Denn eigentlich müsste, wenn man eine Rechnung macht diese ja so aussehen:</p>
<pre><code>34816 / 2^x = 1
</code></pre>
<p>Berechnung wie ich es machen würde:</p>
<pre><code>lg(20000) = lg(2^x)
lg(20000) = x*lg(2)
x = lg(20000)/lg(2)
</code></pre>
<p>Das x am Schluss dann noch abrunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/256109/andere-lösung-für-schleife</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 17:25:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/256109.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 Dec 2009 10:41:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to andere lösung für schleife on Tue, 08 Dec 2009 10:49:40 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>mich würde mal interessieren, ob der folgende Codeabschnitt von mir nicht vielelicht anders gelöst werden kann, z.B. mit einem Logarithmus.</p>
<pre><code class="language-cpp">int var1 = 0;
int var2 = 34816;

while(var2 &gt; 1) {
  var1 += 1;
  var2 /= 2;
}
</code></pre>
<p>Ich weiß alerdigns nicht ob meine Lösung dazu stimmt.</p>
<p>Denn eigentlich müsste, wenn man eine Rechnung macht diese ja so aussehen:</p>
<pre><code>34816 / 2^x = 1
</code></pre>
<p>Berechnung wie ich es machen würde:</p>
<pre><code>lg(20000) = lg(2^x)
lg(20000) = x*lg(2)
x = lg(20000)/lg(2)
</code></pre>
<p>Das x am Schluss dann noch abrunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1819455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1819455</guid><dc:creator><![CDATA[anno]]></dc:creator><pubDate>Tue, 08 Dec 2009 10:49:40 GMT</pubDate></item><item><title><![CDATA[Reply to andere lösung für schleife on Tue, 08 Dec 2009 11:16:16 GMT]]></title><description><![CDATA[<p>Es würde helfen, wenn du sagen würdest, was du überhaupt machen willst. Sonst kriegst du nämlich nur nutzlose Tipps wie diesen hier:</p>
<pre><code class="language-cpp">int var1 = 0;
int var2 = 34816;

while(var2 &gt; 1) {
  var1 += 1;
  var2 /= 2;
}
</code></pre>
<p>ist äquivalent zu:</p>
<pre><code class="language-cpp">int var1 = 15;
int var2 = 1;
</code></pre>
<p>Ein guter Compiler wird da möglicherweise sogar schon zur Compilezeit drauf kommen und entsprechend optimieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1819475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1819475</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 08 Dec 2009 11:16:16 GMT</pubDate></item><item><title><![CDATA[Reply to andere lösung für schleife on Tue, 08 Dec 2009 11:22:21 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Es würde helfen, wenn du sagen würdest, was du überhaupt machen willst. Sonst kriegst du nämlich nur nutzlose Tipps wie diesen hier:</p>
<pre><code class="language-cpp">int var1 = 0;
int var2 = 34816;

while(var2 &gt; 1) {
  var1 += 1;
  var2 /= 2;
}
</code></pre>
<p>ist äquivalent zu:</p>
<pre><code class="language-cpp">int var1 = 15;
int var2 = 1;
</code></pre>
<p>Ein guter Compiler wird da möglicherweise sogar schon zur Compilezeit drauf kommen und entsprechend optimieren.</p>
</blockquote>
<p>Diese Äquivalenz ist mir natürlich klar. Aber ich brauche ja keine konstanten Werte sondern will eben berechnen wie viele Durchläufe bei der Teilung durch 2 benötigt werden.</p>
<p>Das wollte ich jetzt halt einfach etwas schneller durch die Berechnung lösen und wissen ob diese Berechnung von mir richtig ist.</p>
<p>Die Werte, die ich den Veriablen geben habe sollen nur zur veranschaulichung sein. Später bekomme ich den Vert für die &quot;var2&quot; dann aus einer Funktion als Rückgabewert zurück.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1819481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1819481</guid><dc:creator><![CDATA[anno]]></dc:creator><pubDate>Tue, 08 Dec 2009 11:22:21 GMT</pubDate></item><item><title><![CDATA[Reply to andere lösung für schleife on Tue, 08 Dec 2009 11:27:26 GMT]]></title><description><![CDATA[<p>Ich glaube die 100 Prozessortakte die dein Schleifchen braucht (wenn es sich nicht schon um Compilezeitkonstanten handelt und dadurch wegoptimiert wird), sind nicht so schwerwiegend gegenüber der Zeit die das Ausrechnen von Logarithmen braucht. Das dürfte beides ungefähr gleich lange dauern.</p>
<p>Aber eine direkte Lösung mit Logarithmen fällt mir sowieso nicht ein, weil ich mich schwer tue, die Integerdivision richtig umzurechnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1819487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1819487</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 08 Dec 2009 11:27:26 GMT</pubDate></item></channel></rss>