<?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[Klasse für sehr große Zahlen]]></title><description><![CDATA[<p>Ich hab mir jetzt eine Klasse für sehr große Zahlen gebastelt. Dabei habe ich intern ein dynamisches char array verwendet. Das array wird ja mit</p>
<pre><code>char *array = new char[anzahl];
</code></pre>
<p>erstellt. Dabei ist anzahl ein unsigned long long. Das bedeutet die Zahl kann &quot;nur&quot; 18.446.744.073.709.551.615 Stellen haben. Kann man das irgendwie umgehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/325064/klasse-für-sehr-große-zahlen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Jul 2026 11:10:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/325064.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 13 Apr 2014 07:51:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 07:51:44 GMT]]></title><description><![CDATA[<p>Ich hab mir jetzt eine Klasse für sehr große Zahlen gebastelt. Dabei habe ich intern ein dynamisches char array verwendet. Das array wird ja mit</p>
<pre><code>char *array = new char[anzahl];
</code></pre>
<p>erstellt. Dabei ist anzahl ein unsigned long long. Das bedeutet die Zahl kann &quot;nur&quot; 18.446.744.073.709.551.615 Stellen haben. Kann man das irgendwie umgehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394294</guid><dc:creator><![CDATA[henriknikolas]]></dc:creator><pubDate>Sun, 13 Apr 2014 07:51:44 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 08:13:07 GMT]]></title><description><![CDATA[<p>Also, für einen müden Husten hats noch gereicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394295</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 13 Apr 2014 08:13:07 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 08:17:24 GMT]]></title><description><![CDATA[<p>Die Grösse ist size_t. Die konkrete Grösse hängt von der Implementierung ab.<br />
Unter der Annahme, ein char sei 8 Bit breit, passen in jedes char 256 Werte.<br />
Falls man mit size_t nicht den kompletten verfügbaren Speicher auf einen Schlag erhält, könnte man mehrere Arrays benutzen.</p>
<p>Unendlich passt aber auch da nicht rein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394296</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sun, 13 Apr 2014 08:17:24 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 08:18:14 GMT]]></title><description><![CDATA[<p>Zum einen kannst du die Zahl doch auch binär abspeichern und schon kannst du viel mehr Werte annehmen. Ansonsten würde ich eine sehr komplexe Klasse schreiben, die den Zahlenbereich bei Zugriff irgendwo von (verschiedenen) Servern oder Bandspeichern läd, automatisch cached und einen eingebauten Komprimierungsalgorithmus hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394297</guid><dc:creator><![CDATA[Marthog]]></dc:creator><pubDate>Sun, 13 Apr 2014 08:18:14 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 08:34:11 GMT]]></title><description><![CDATA[<p>Nehmen wir an, dass in einem <code>char</code> 8 Bit enthalten sind. Dann schaffst du mit <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mn>2</mn><mrow><mn>6</mn><mn>4</mn></mrow></msup></mrow><annotation encoding="application/x-tex">2^{64}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.8141079999999999em;"></span><span class="strut bottom" style="height:0.8141079999999999em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathrm">2</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord scriptstyle uncramped"><span class="mord mathrm">6</span><span class="mord mathrm">4</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span> Bytes \frac{8\*2^{64}}{log_210} \approx 4.44\*10^{19} dezimale Ziffern.</p>
<p>Falls du mit Zahlen rechnen willst, die größer sind als dass (eigentlich wird dir schon bei viel weniger alles um die Ohren fliegen), musst du das irgendwie vereinfachen, bspw. nur mit Annäherungen rechnen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23821">@Marthog</a>: Viel? Der Faktor ist gerade mal um die 2-3... :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394299</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 13 Apr 2014 08:34:11 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 08:58:16 GMT]]></title><description><![CDATA[<p>Marthog schrieb:</p>
<blockquote>
<p>Ansonsten würde ich eine sehr komplexe Klasse schreiben, die den Zahlenbereich bei Zugriff irgendwo von (verschiedenen) Servern oder Bandspeichern läd, automatisch cached und einen eingebauten Komprimierungsalgorithmus hat.</p>
</blockquote>
<p>Lass Dich nicht veralbern. Wie lange würde eine Addition zweier so langer Zahlen dauern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394309</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 13 Apr 2014 08:58:16 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 12:05:32 GMT]]></title><description><![CDATA[<p>Wenn ich eure Antworten richtig verstanden habe, habe ich jetzt 2 Möglichkeiten: 1.Die Zahlen binär abspeichern und dann gegebenenfalls wieder umwandeln 2.Die Zahl vereinfachen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394343</guid><dc:creator><![CDATA[henriknikolas]]></dc:creator><pubDate>Sun, 13 Apr 2014 12:05:32 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 12:21:09 GMT]]></title><description><![CDATA[<p>henriknikolas schrieb:</p>
<blockquote>
<p>Wenn ich eure Antworten richtig verstanden habe, habe ich jetzt 2 Möglichkeiten: 1.Die Zahlen binär abspeichern und dann gegebenenfalls wieder umwandeln 2.Die Zahl vereinfachen</p>
</blockquote>
<p>Wie lange würde eine Addition zweier so langer Zahlen dauern? Also reichen 64Bit für die Länge doch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394345</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 13 Apr 2014 12:21:09 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 13:15:33 GMT]]></title><description><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Variable-length_quantity" rel="nofollow">http://en.wikipedia.org/wiki/Variable-length_quantity</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394359</guid><dc:creator><![CDATA[unendliche güte]]></dc:creator><pubDate>Sun, 13 Apr 2014 13:15:33 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 14:27:25 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Wie lange würde eine Addition zweier so langer Zahlen dauern? Also reichen 64Bit für die Länge doch.</p>
</blockquote>
<p>Stimmt du hast ja recht, eine Zahl mit <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>4</mn><mo>∗</mo><mn>1</mn><msup><mn>0</mn><mrow><mn>1</mn><mn>9</mn></mrow></msup></mrow><annotation encoding="application/x-tex">4 * 10^{19}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.8141079999999999em;"></span><span class="strut bottom" style="height:0.8141079999999999em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathrm">4</span><span class="mbin">∗</span><span class="mord mathrm">1</span><span class="mord"><span class="mord mathrm">0</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord scriptstyle uncramped"><span class="mord mathrm">1</span><span class="mord mathrm">9</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span> Stellen ist schon eine riesige Zahl, vor allem wenn man bedenkt dass die größte Primzahl &quot;nur&quot; 17 Millionen Ziffern hat</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394363</guid><dc:creator><![CDATA[henriknikolas]]></dc:creator><pubDate>Sun, 13 Apr 2014 14:27:25 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 13:34:45 GMT]]></title><description><![CDATA[<p>henriknikolas schrieb:</p>
<blockquote>
<p>Stimmt du hast ja recht, 4 * 10<sup>19</sup> ist schon eine riesige Zahl, vor allem wenn man bedenkt dass die größte Primzahl &quot;nur&quot; 15 Millionen Ziffern hat</p>
</blockquote>
<p><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="😕"
    /><br />
15 Millionen Ziffern ist aber in der Grössenordnung 10^15 Millionen^, was ein bisschen grösser als 10<sup>19</sup> ist...</p>
<p>volkard wollte dich auf was anderes hinweisen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394364</guid><dc:creator><![CDATA[Verwirrter]]></dc:creator><pubDate>Sun, 13 Apr 2014 13:34:45 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 13:51:52 GMT]]></title><description><![CDATA[<p>Seit wann gibt es eine größte Primzahl? Ich erinnere mich noch an den Beweis, dass es von den Dingern unendlich viele gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394369</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Sun, 13 Apr 2014 13:51:52 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 13:56:18 GMT]]></title><description><![CDATA[<p>nwp3 schrieb:</p>
<blockquote>
<p>Seit wann gibt es eine größte Primzahl? Ich erinnere mich noch an den Beweis, dass es von den Dingern unendlich viele gibt.</p>
</blockquote>
<p>Er meint offensichtlich die größte bekannte. Und die hat übrigens <a href="http://en.wikipedia.org/wiki/Largest_known_prime" rel="nofollow">17 Millionen</a> dezimale Stellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394371</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 13 Apr 2014 13:56:18 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 14:34:48 GMT]]></title><description><![CDATA[<p>Verwirrter schrieb:</p>
<blockquote>
<p>henriknikolas schrieb:</p>
<blockquote>
<p>Stimmt du hast ja recht, 4 * 10<sup>19</sup> ist schon eine riesige Zahl, vor allem wenn man bedenkt dass die größte Primzahl &quot;nur&quot; 15 Millionen Ziffern hat</p>
</blockquote>
<p><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="😕"
    /><br />
15 Millionen Ziffern ist aber in der Grössenordnung 10^15 Millionen^, was ein bisschen grösser als 10<sup>19</sup> ist...</p>
</blockquote>
<p>Naja, seine Langzahlen können weil size_t nur 64 Bit hat, nur bis 10^19 Ziffern lang werden, was ein Bißchen mehr ist als 15 Millionen Ziffern.</p>
<p>Verwirrter schrieb:</p>
<blockquote>
<p>volkard wollte dich auf was anderes hinweisen.</p>
</blockquote>
<p>Jup. Nehmen wir mal an, der Prozessor kann 10GHZ und hat 10 Kerne und das Addieren geht voll parallel und pro Takt schafft er, eine Ergebnisziffer zu produzieren, dann sind das 10*10<sup>9*10=10</sup>11 Ziffern pro Sekunde, dann braucht er für eine simple Addition 10^8 Sekunden also 3 Jahre. Für eine Multiplikation vielleicht ein Jahrhundert? Zum Ausdrucken der Zahl 60Mio Jahre, wobei man dafür 30 Weltjahresholzproduktionen kaufen muss, zum Übertragen bei 1GB/s (wer will die Zahl mal schnell haben?) 2500 Jahre, zum Abspeichern braucht man 10Mio Terabyte, die 200Mio€ kosten, mit 2Mio€ Stromkosten pro Monat, das führt mich ein wenig zu der Annahme, daß man sowas noch nicht braucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394378</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 13 Apr 2014 14:34:48 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse für sehr große Zahlen on Sun, 13 Apr 2014 17:05:59 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Verwirrter schrieb:</p>
<blockquote>
<p>henriknikolas schrieb:</p>
<blockquote>
<p>Stimmt du hast ja recht, 4 * 10<sup>19</sup> ist schon eine riesige Zahl, vor allem wenn man bedenkt dass die größte Primzahl &quot;nur&quot; 15 Millionen Ziffern hat</p>
</blockquote>
<p><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="😕"
    /><br />
15 Millionen Ziffern ist aber in der Grössenordnung 10^15 Millionen^, was ein bisschen grösser als 10<sup>19</sup> ist...</p>
</blockquote>
<p>Naja, seine Langzahlen können weil size_t nur 64 Bit hat, nur bis 10^19 Ziffern lang werden, was ein Bißchen mehr ist als 15 Millionen Ziffern.</p>
<p>Verwirrter schrieb:</p>
<blockquote>
<p>volkard wollte dich auf was anderes hinweisen.</p>
</blockquote>
<p>Jup. Nehmen wir mal an, der Prozessor kann 10GHZ und hat 10 Kerne und das Addieren geht voll parallel und pro Takt schafft er, eine Ergebnisziffer zu produzieren, dann sind das 10*10<sup>9*10=10</sup>11 Ziffern pro Sekunde, dann braucht er für eine simple Addition 10^8 Sekunden also 3 Jahre. Für eine Multiplikation vielleicht ein Jahrhundert? Zum Ausdrucken der Zahl 60Mio Jahre, wobei man dafür 30 Weltjahresholzproduktionen kaufen muss, zum Übertragen bei 1GB/s (wer will die Zahl mal schnell haben?) 2500 Jahre, zum Abspeichern braucht man 10Mio Terabyte, die 200Mio€ kosten, mit 2Mio€ Stromkosten pro Monat, das führt mich ein wenig zu der Annahme, daß man sowas noch nicht braucht.</p>
</blockquote>
<p>Ich weiß schon was du mir sagen wolltest, mit dem 10 hoch 19 hab ich mich nur verschrieben, ich meinte damit die maximale Anzahl der Ziffern und nicht die größte Zahl, und ja es gibt natürlich keine größte Primzahl, ich bezog mich lediglich auf die bis jetzt größte gefundene Primzahl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394409</guid><dc:creator><![CDATA[henriknikolas]]></dc:creator><pubDate>Sun, 13 Apr 2014 17:05:59 GMT</pubDate></item></channel></rss>