<?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[Übung aus C++ Primer (bitset)]]></title><description><![CDATA[<p>Hier nochmal die Abschlussübung zu &quot;bitset&quot;:</p>
<blockquote>
<p>Betrachten Sie die Zahlenfolge 1,2,3,5,8,13,21. Initialisieren Sie ein bitset&lt;32&gt; Objekt, das ein Bit in jeder Position aufweist, die einer Zahl dieser Folge entspricht. Schreiben Sie alternativ ein kurzes Programm für ein leeres Bitset, das jedes der genannten Bits einschaltet.</p>
</blockquote>
<p>Teil 1 der Aufgabenstellung verstehe ich einfach nicht, bei mir kann n bitset&lt;32&gt; bitvec = 1 // = 2; = 3; = 5...... sein, aber nicht irgendwie alles gleichzeitig. &quot;In jeder Position....&quot; ka...wie des gemeint ist.</p>
<p>Teil 2, da wäre hier mein Lösungsvorschlag:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;bitset&gt;

using std::cout;
using std::endl;
using std::bitset;

int main()
{
    bitset&lt;32&gt; bitvec;
    size_t last_on_bit = 21;
    size_t remember = 0;
    for(size_t i=1; i&lt;=last_on_bit; i = i + remember ) // i=1  r=1; i=2 r=1+2=3; i=5 r=3+5=8;.......
    {
        bitvec.set(i);
        remember += i;
        bitvec.set(remember);
    }

    cout &lt;&lt; bitvec &lt;&lt; endl &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>1. Bitte bewerten/kritisieren <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 />
2. Ist dass mit dem &quot;size_t&quot; korrekt, weil in meinem Buch hab ich gelernt, dass ein &quot;BitsetOjekt.size()&quot; size_t zurück gibt, also Spreche ich auch die einzelnen Positionen bei &quot;set(...)&quot; mit size_t an? Oder hab ich da was falsch verstanden? Wie hättet ihr dass gemacht? (mit diesen ganzen Typen komm ich irgendwann mal noch total durcheinander...:))</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/230585/übung-aus-c-primer-bitset</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 07:59:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/230585.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Dec 2008 13:12:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Übung aus C++ Primer (bitset) on Mon, 29 Dec 2008 13:12:12 GMT]]></title><description><![CDATA[<p>Hier nochmal die Abschlussübung zu &quot;bitset&quot;:</p>
<blockquote>
<p>Betrachten Sie die Zahlenfolge 1,2,3,5,8,13,21. Initialisieren Sie ein bitset&lt;32&gt; Objekt, das ein Bit in jeder Position aufweist, die einer Zahl dieser Folge entspricht. Schreiben Sie alternativ ein kurzes Programm für ein leeres Bitset, das jedes der genannten Bits einschaltet.</p>
</blockquote>
<p>Teil 1 der Aufgabenstellung verstehe ich einfach nicht, bei mir kann n bitset&lt;32&gt; bitvec = 1 // = 2; = 3; = 5...... sein, aber nicht irgendwie alles gleichzeitig. &quot;In jeder Position....&quot; ka...wie des gemeint ist.</p>
<p>Teil 2, da wäre hier mein Lösungsvorschlag:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;bitset&gt;

using std::cout;
using std::endl;
using std::bitset;

int main()
{
    bitset&lt;32&gt; bitvec;
    size_t last_on_bit = 21;
    size_t remember = 0;
    for(size_t i=1; i&lt;=last_on_bit; i = i + remember ) // i=1  r=1; i=2 r=1+2=3; i=5 r=3+5=8;.......
    {
        bitvec.set(i);
        remember += i;
        bitvec.set(remember);
    }

    cout &lt;&lt; bitvec &lt;&lt; endl &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>1. Bitte bewerten/kritisieren <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 />
2. Ist dass mit dem &quot;size_t&quot; korrekt, weil in meinem Buch hab ich gelernt, dass ein &quot;BitsetOjekt.size()&quot; size_t zurück gibt, also Spreche ich auch die einzelnen Positionen bei &quot;set(...)&quot; mit size_t an? Oder hab ich da was falsch verstanden? Wie hättet ihr dass gemacht? (mit diesen ganzen Typen komm ich irgendwann mal noch total durcheinander...:))</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636822</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Mon, 29 Dec 2008 13:12:12 GMT</pubDate></item><item><title><![CDATA[Reply to Übung aus C++ Primer (bitset) on Mon, 29 Dec 2008 14:40:42 GMT]]></title><description><![CDATA[<pre><code>Bit  1: 00000000 00000000 00000000 00000001
Bit  2: 00000000 00000000 00000000 00000010
Bit  3: 00000000 00000000 00000000 00000100
Bit  5: 00000000 00000000 00000000 00010000
Bit  8: 00000000 00000000 00000000 10000000
Bit 13: 00000000 00000000 00010000 00000000
Bit 21: 00000000 00010000 00000000 00000000

Result: 00000000 00010000 00010000 10010111 -&gt; 1052823
</code></pre>
<pre><code class="language-cpp">std::bitset&lt;32&gt; bitvec(1052823ul);
</code></pre>
<p>Und als Funktion würde ich das daher irgendwie so schreiben:</p>
<pre><code class="language-cpp">void do_that_thing(std::bitset&lt;32&gt;&amp; bitset)
{
  static std::bitset&lt;32&gt; const value(1052823ul);

  bitset.reset();
  bitset |= value;
}
</code></pre>
<p>Sofern ich das richtig verstanden habe <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>Und wegen dem size_t und co, dafür gibt es Referenzen:<br />
<a href="http://www.cplusplus.com/reference/stl/bitset/" rel="nofollow">http://www.cplusplus.com/reference/stl/bitset/</a><br />
bzw.<br />
<a href="http://www.cplusplus.com/reference/stl/bitset/size.html" rel="nofollow">http://www.cplusplus.com/reference/stl/bitset/size.html</a><br />
<a href="http://www.cplusplus.com/reference/stl/bitset/set.html" rel="nofollow">http://www.cplusplus.com/reference/stl/bitset/set.html</a></p>
<p>Mit der Zeit kennt man aber das wichtigste auswendig <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>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1636872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1636872</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 29 Dec 2008 14:40:42 GMT</pubDate></item></channel></rss>