<?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[String zu Long, manuell]]></title><description><![CDATA[<p>Hey, ich bin gerade am Üben und stolper über einen bestimmt sehr simplen Fehler.<br />
Gegeben ist n String mit Zahlen, (&quot;Eingabe&quot;) der in ne Zahl vom Typ long (&quot;Zahl&quot;) umgebaut werden soll.</p>
<p>Aber aus einem mir unbekannten Grund ist die Zahl immer 2 kleiner als der String. Hab keine lust, einfach + 2 zu addieren, weil ich den eigentlichen Fehler finden will. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Danke im Voraus.</p>
<pre><code class="language-cpp">for(int i = (Eingabe.size()-1); i &gt;=0; i--)
{
     Zahl = Zahl + (Eingabe[i]-'0') * pow(10,(Eingabe.size()-1-i)); 
}
cout &lt;&lt; Zahl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/300346/string-zu-long-manuell</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 21:13:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300346.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Mar 2012 13:45:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 14:01:41 GMT]]></title><description><![CDATA[<p>Hey, ich bin gerade am Üben und stolper über einen bestimmt sehr simplen Fehler.<br />
Gegeben ist n String mit Zahlen, (&quot;Eingabe&quot;) der in ne Zahl vom Typ long (&quot;Zahl&quot;) umgebaut werden soll.</p>
<p>Aber aus einem mir unbekannten Grund ist die Zahl immer 2 kleiner als der String. Hab keine lust, einfach + 2 zu addieren, weil ich den eigentlichen Fehler finden will. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Danke im Voraus.</p>
<pre><code class="language-cpp">for(int i = (Eingabe.size()-1); i &gt;=0; i--)
{
     Zahl = Zahl + (Eingabe[i]-'0') * pow(10,(Eingabe.size()-1-i)); 
}
cout &lt;&lt; Zahl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2187356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187356</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Thu, 01 Mar 2012 14:01:41 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 13:51:17 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Eingabe[i]-'0'
</code></pre>
<p>Was tut das?</p>
<p>Edit: Ach so das wird eine atol-Funktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187360</guid><dc:creator><![CDATA[Thuruk]]></dc:creator><pubDate>Thu, 01 Mar 2012 13:51:17 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 13:50:26 GMT]]></title><description><![CDATA[<p>Thuruk: Macht aus einer ASCII-Ziffer die entsprechende Zahl.</p>
<p>ruhig_brauner: Hast du Zahl mit 0 initialisiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187361</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Thu, 01 Mar 2012 13:50:26 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 13:52:28 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Zahl = atoi(eingabe);
</code></pre>
<p><a href="http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187362</guid><dc:creator><![CDATA[Videonauth]]></dc:creator><pubDate>Thu, 01 Mar 2012 13:52:28 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 13:53:23 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">long atol(char const* s)
{
    long r = 0;

    while(*s &amp;&amp; *s &gt;= '0' &amp;&amp; *s &lt;= '9')
        (r *= 10) += *s++ - '0';

    return r;
}
</code></pre>
<p>*gähn</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187365</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 01 Mar 2012 13:53:23 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 13:55:38 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28637">@Videonauth</a>, ich habe gehofft, nicht schreiben zu müssen, dass ne fertige atoi für Übungszwecke nicht hilfreich ist. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Ganz vorbildlich mit 0 initialisiert. Der String enthält auch nur Zahlen, wird vorher kontrolliert.</p>
<p>PS. Mir gings darum, meinen Fehler zu finden. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> thx trozdem</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187366</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Thu, 01 Mar 2012 13:55:38 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 14:19:02 GMT]]></title><description><![CDATA[<p>Das komische dabei ist folgendes.</p>
<p>Ich hab die beiden Teile mal geteilt. Die Ziffer und die Potenz.<br />
Jetzt wird in der Schleife ausgegeben, was die aktuelle Ziffer und was die aktuelle Potenz ist, dabei entsteht kein Fehler. Alles ist richtig.</p>
<p>Sobald aber die Zahl berechnet wird, schlieft sich irgendwo ein Fehler ein.</p>
<p>Bsp:<br />
im String ist 1234<br />
Ziffer = 4, Potenz = 1<br />
Ziffer = 3, Potenz = 10<br />
Ziffer = 2, Potenz = 100<br />
Ziffer = 1, Potenz = 1000</p>
<p>Zahl += Ziffer * Potenz</p>
<p>Zahl = 1232</p>
<p>Wenn ich nun stück für stück gucke, was zur Zahl hinzuaddiert wird, kommt manchmal son quatsch raus:<br />
4<br />
29 (Anstatt 30)<br />
200<br />
999 (Anstatt 1000)</p>
<p>versteht das jemand?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187374</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Thu, 01 Mar 2012 14:19:02 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 14:21:59 GMT]]></title><description><![CDATA[<p>Ist long ein ganzzahliger Typ? Sonst kann das ein Inpräzisionsfehler wie bei float oder double sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187376</guid><dc:creator><![CDATA[Thuruk]]></dc:creator><pubDate>Thu, 01 Mar 2012 14:21:59 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 14:22:26 GMT]]></title><description><![CDATA[<p>Gibt mal in dein Testprogramm als String: 34, 345, 3546, 36544 ein.<br />
Strings/Zahlen wurden beliebig gewählt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Meine Vermutung geht in Richtung Präzision der pow-Funktion.<br />
Bist du daran gebunden?</p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187377</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Thu, 01 Mar 2012 14:22:26 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 14:29:29 GMT]]></title><description><![CDATA[<p>nein, war mir bloß net mehr sicher, wie 10ner Potenzen gingen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Die Vermutung mit Ungenauigkeit hatte ich auch schon, aber das Programm gibt mir die pow-Ergebnisse ja mit 1, 10, 100 u.s.w ganz normal aus. Erst die Multiplikation der beiden ganzen Zahlen bringt den Fehler rein.</p>
<p>34 - 34<br />
345 - 342<br />
3546 - 3541<br />
36544 - 36536</p>
<p>Deine Zahlen machen das ganze nur noch ungenauer. <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/2187379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187379</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Thu, 01 Mar 2012 14:29:29 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 14:34:24 GMT]]></title><description><![CDATA[<p>Du hast einen anderen Compiler mit einer anderen Mathe-Bibliothek <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187382</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Thu, 01 Mar 2012 14:34:24 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 14:36:23 GMT]]></title><description><![CDATA[<p>Was soll ich dann statt pow benutzen? Versteh trotzdem nicht ganz, wieso er so ins straucheln gerät....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187383</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Thu, 01 Mar 2012 14:36:23 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 14:44:31 GMT]]></title><description><![CDATA[<p>pow gibt statt 3 sowas wie 2.99999999 zurück. du konvertierst in ganzzahl (-&gt; 2) und peng.</p>
<p>schreib dir selbst eine potenzfunktion für long</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187388</guid><dc:creator><![CDATA[asdasdasrqwrwerwtrtret]]></dc:creator><pubDate>Thu, 01 Mar 2012 14:44:31 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 15:01:17 GMT]]></title><description><![CDATA[<p>Genau sowas wollte ich wissen <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="🙂"
    /> Danke</p>
<p>hätte halt nicht gedacht das pow da ungenau ist, auch wenn bloß int-Werte eingehen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Jetzt sieht der Quelltext wegen den ganzen Kontrollen zwar ein wenig unhübsch aus, aber es funktioniert. Wegen sowas übt man ja. <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/2187398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187398</guid><dc:creator><![CDATA[ruhig_brauner]]></dc:creator><pubDate>Thu, 01 Mar 2012 15:01:17 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 14:58:14 GMT]]></title><description><![CDATA[<p>Du brauchst pow nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187400</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 01 Mar 2012 14:58:14 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 15:07:53 GMT]]></title><description><![CDATA[<p>Hier mal was zu pow:<br />
<a href="http://www.cplusplus.com/reference/clibrary/cmath/pow/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/cmath/pow/</a></p>
<p>Pi hat dir ja schon einen anderen Weg gezeigt.</p>
<p>Dein Ansatz ohne #include &lt;cmath&gt; und pow:</p>
<pre><code class="language-cpp">for(int i = 0; i &lt; (Eingabe.size()); i++)
	{
		int zpotenz = 1;
		for(int j = 0; j &lt; i; j++)
			zpotenz = zpotenz * 10;
		Zahl = Zahl + (Eingabe[Eingabe.size() - 1 - i]-'0') * zpotenz;
	}
</code></pre>
<p>Das geht wahrscheinlich noch eleganter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187402</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Thu, 01 Mar 2012 15:07:53 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 15:46:25 GMT]]></title><description><![CDATA[<p>Oder sogar ganz ohne Multiplikationen:</p>
<pre><code class="language-cpp">for( int i = 0; i &lt; Eingabe.size(); ++i )
{
	Zahl = ( Zahl &lt;&lt; 3 ) + ( Zahl &lt;&lt; 1 ) + Eingabe[i] - '0';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2187424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187424</guid><dc:creator><![CDATA[reano]]></dc:creator><pubDate>Thu, 01 Mar 2012 15:46:25 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 17:52:42 GMT]]></title><description><![CDATA[<p>reano schrieb:</p>
<blockquote>
<p>Oder sogar ganz ohne Multiplikationen:</p>
<pre><code class="language-cpp">for( int i = 0; i &lt; Eingabe.size(); ++i )
{
	Zahl = ( Zahl &lt;&lt; 3 ) + ( Zahl &lt;&lt; 1 ) + Eingabe[i] - '0';
}
</code></pre>
</blockquote>
<p>Das ist allerdings ziemlich unsinnig, weil es deutlich langsamer sein kann. Auf einem AVR atmega16 zum Beispiel kostet eine Multiplikation genau 2 Takte. Ein Shift um 3 Positionen nach links kostet 3 Takte, ein Shift um eine Position nach links 1 Takt und die zusätzliche Addition nochmal 1 Takt. Insgesamt hat man hier also 5 Takte für deine Lösung gegenüber 2 Takte, wenn man einfach direkt mit 10 multipliziert.</p>
<p>Solche Optimierungen überlässt man besser dem Compiler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187470</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Thu, 01 Mar 2012 17:52:42 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 18:26:11 GMT]]></title><description><![CDATA[<p>Natürlich ist das systemabhängig.</p>
<pre><code class="language-cpp">int main()
{
	const char* nr = &quot;1336543215&quot;;

	const int maxNum = 100000000;

	{
		StopWatch w; // nutzt den PerformanceCounter
		w.Start();
		for(int i=0;i&lt;maxNum;++i)
		{
			int k = atoiReano(nr);
			if(k!=1336543215)
				cout &lt;&lt; &quot;unmoeglich\n&quot;;
		}
		w.Stop();
		cout &lt;&lt; w.GetTime() &lt;&lt; &quot;ms\n&quot;;
	}
	{
		StopWatch w;
		w.Start();
		for(int i=0;i&lt;maxNum;++i)
		{
			int k = atoi(nr);
			if(k!=1336543215)
				cout &lt;&lt; &quot;unmoeglich\n&quot;;
		}
		w.Stop();
		cout &lt;&lt; w.GetTime() &lt;&lt; &quot;ms\n&quot;;
	}
}
</code></pre>
<p>Ausgabe:</p>
<pre><code>1.01927ms
5.02301ms
</code></pre>
<p>Für mein System ist das eindeutig, von Unsinn kann da keine Rede sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187499</guid><dc:creator><![CDATA[Thorgrim]]></dc:creator><pubDate>Thu, 01 Mar 2012 18:26:11 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 18:27:12 GMT]]></title><description><![CDATA[<p>Ah, jetzt habe ich doch glatt Pi vergessen: 1.0830ms.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187500</guid><dc:creator><![CDATA[Thorgrim]]></dc:creator><pubDate>Thu, 01 Mar 2012 18:27:12 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 18:29:39 GMT]]></title><description><![CDATA[<p>Stellenangebot:</p>
<p>Putzfrau gesucht<br />
10 € / Stunde</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187501</guid><dc:creator><![CDATA[Suchanfrage]]></dc:creator><pubDate>Thu, 01 Mar 2012 18:29:39 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 18:39:02 GMT]]></title><description><![CDATA[<p>debugmode?</p>
<pre><code class="language-cpp">for(int i=0;i&lt;maxNum;++i) 
        { 
            int k = atoiReano(nr); 
            if(k!=1336543215) 
                cout &lt;&lt; &quot;unmoeglich\n&quot;; 
        }
</code></pre>
<p>das das rausoptimiert werden kann, erkennt auch der unfähigste compiler Oo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187505</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 01 Mar 2012 18:39:02 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 18:41:37 GMT]]></title><description><![CDATA[<p>Aber warum dann nicht bei atoiPi oder atoi standart?</p>
<pre><code>Reano: 20ms
Pi: 40ms
Standart: 90ms
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2187506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187506</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Thu, 01 Mar 2012 18:41:37 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 18:45:15 GMT]]></title><description><![CDATA[<p>Thorgrim schrieb:</p>
<blockquote>
<p>Ausgabe:</p>
<pre><code>1.01927ms
5.02301ms
</code></pre>
<p>Für mein System ist das eindeutig, von Unsinn kann da keine Rede sein.</p>
</blockquote>
<p>Hast du im generierten Assembler-Code geprüft, dass deine Schleife nicht einfach komplett rausoptimiert wurde?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187507</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Thu, 01 Mar 2012 18:45:15 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 18:51:54 GMT]]></title><description><![CDATA[<p><a href="http://tinodidriksen.com/2010/02/16/cpp-convert-string-to-int-speed/" rel="nofollow">http://tinodidriksen.com/2010/02/16/cpp-convert-string-to-int-speed/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187509</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Thu, 01 Mar 2012 18:51:54 GMT</pubDate></item><item><title><![CDATA[Reply to String zu Long, manuell on Thu, 01 Mar 2012 19:28:09 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>das das rausoptimiert werden kann, erkennt auch der unfähigste compiler Oo</p>
</blockquote>
<p>phyax hat ja schon einen Link gepostet, während ich mir noch den asm-Output angeschaut habe. 20% der Zeit von atoi passt ja auch. Compiler war VC 9, win64 und x64-Code natürlich im Releasemodus, Schleifen nicht rausoptimiert (VC tut sich diesbezüglich immer schwer damit).</p>
<p>Update:</p>
<pre><code>0.770659s  Reano
5.03864s   atoi
1.17046s   Pi
123.285s   stringstream
</code></pre>
<p>Mit dem alten g++ 4.4</p>
<pre><code>1.0659s
5.07371s
1.09504s
105.263s
</code></pre>
<p>Ich hatte erwähnt, Zeichenfolgen zufällig zusammenzustellen, aber auch bei statischen Zeichenketten optimieren die Compiler nichts weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2187515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2187515</guid><dc:creator><![CDATA[Thorgrim]]></dc:creator><pubDate>Thu, 01 Mar 2012 19:28:09 GMT</pubDate></item></channel></rss>