<?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[Bit vertauschen]]></title><description><![CDATA[<p>Hey, wie kann ich das n-te Bit der Variable a mit dem m-ten Bit der Variable b tauschen?</p>
<pre><code class="language-cpp">unsigned char a, b;

swapBit(a, 2, b, 4); // bit 3 der variable a mit bit 5 der variable b tauschen.
</code></pre>
<p>Wie geht das? <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/topic/260084/bit-vertauschen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 04:29:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/260084.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 31 Jan 2010 19:16:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bit vertauschen on Sun, 31 Jan 2010 19:16:42 GMT]]></title><description><![CDATA[<p>Hey, wie kann ich das n-te Bit der Variable a mit dem m-ten Bit der Variable b tauschen?</p>
<pre><code class="language-cpp">unsigned char a, b;

swapBit(a, 2, b, 4); // bit 3 der variable a mit bit 5 der variable b tauschen.
</code></pre>
<p>Wie geht das? <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/1848222</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1848222</guid><dc:creator><![CDATA[Zulooo]]></dc:creator><pubDate>Sun, 31 Jan 2010 19:16:42 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Sun, 31 Jan 2010 19:31:18 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">//ungetestet
void swapBit(int a,int posa,int b,int posb){
   int bitmaska=1&lt;&lt;posa;
   int bitmaskb=1&lt;&lt;posb;
   int bita=(a&amp;bitmaska)&gt;&gt;posa;
   int bitb=(b&amp;bitmaska)&gt;&gt;posb;
   a&amp;=~bitmaska;
   b&amp;=~bitmaskb;
   a|=bitb&lt;&lt;posa;
   b|=bita&lt;&lt;posb;
}
</code></pre>
<p>Ich würde anraten, nochmal zu testen, ob der a<sup>=b</sup>=a^=b-Trick hier verwertbar ist.<br />
So ungefähr</p>
<pre><code class="language-cpp">//nur geraten
a^=((b&gt;&gt;posb)&amp;1)&lt;&lt;posa;
b^=((a&gt;&gt;posa)&amp;1)&lt;&lt;posb;
b^=((a&gt;&gt;posa)&amp;1)&lt;&lt;posb;
//nicht hübsch
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1848228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1848228</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 31 Jan 2010 19:31:18 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Sun, 31 Jan 2010 19:38:26 GMT]]></title><description><![CDATA[<p>Ungetestet:</p>
<pre><code class="language-cpp">void swapBit(int&amp; var1, size_t pos1, int&amp; var2, size_t pos2)
{
   int temp = var1;
   var1 &amp;= ~(0x01 &lt;&lt; pos1);
   var1 |= ((var2 &gt;&gt; pos2) &amp; 0x01) &lt;&lt; pos1;
   var2 &amp;= ~(0x01 &lt;&lt; pos2);
   var2 |= ((temp &gt;&gt; pos1) &amp; 0x01) &lt;&lt; pos2;
}
</code></pre>
<p>edit: Dabei wird aber von rechts, beginnend mit 0 gezählt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1848231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1848231</guid><dc:creator><![CDATA[wx++]]></dc:creator><pubDate>Sun, 31 Jan 2010 19:38:26 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Sun, 31 Jan 2010 19:53:42 GMT]]></title><description><![CDATA[<p>wx++ schrieb:</p>
<blockquote>
<p>Ungetestet:</p>
<pre><code class="language-cpp">void swapBit(int&amp; var1, size_t pos1, int&amp; var2, size_t pos2)
{
   int temp = var1;
   var1 &amp;= ~(0x01 &lt;&lt; pos1);
   var1 |= ((var2 &gt;&gt; pos2) &amp; 0x01) &lt;&lt; pos1;
   var2 &amp;= ~(0x01 &lt;&lt; pos2);
   var2 |= ((temp &gt;&gt; pos1) &amp; 0x01) &lt;&lt; pos2;
}
</code></pre>
<p>edit: Dabei wird aber von rechts, beginnend mit 0 gezählt.</p>
</blockquote>
<p>Ich habe es mal so getestet (für <code>unsigned char</code> umgeschrieben):</p>
<pre><code class="language-cpp">unsigned char bla = 100;

std::cout &lt;&lt; &quot;= &quot; &lt;&lt; bla &lt;&lt; std::endl;

swapBit(bla, 8-1, bla, 8-2);
std::cout &lt;&lt; &quot;swap =&gt; &quot; &lt;&lt; bla &lt;&lt; std::endl;

swapBit(bla, 8-2, bla, 8-1);

std::cout &lt;&lt; &quot;= &quot; &lt;&lt; bla &lt;&lt; std::endl;
</code></pre>
<p>Scheint zu klappen <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 <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>
<p>volkard schrieb:</p>
<blockquote>
<pre><code class="language-cpp">//ungetestet
void swapBit(int a,int posa,int b,int posb){
   int bitmaska=1&lt;&lt;posa;
   int bitmaskb=1&lt;&lt;posb;
   int bita=(a&amp;bitmaska)&gt;&gt;posa;
   int bitb=(b&amp;bitmaska)&gt;&gt;posb;
   a&amp;=~bitmaska;
   b&amp;=~bitmaskb;
   a|=bitb&lt;&lt;posa;
   b|=bita&lt;&lt;posb;
}
</code></pre>
<p>Ich würde anraten, nochmal zu testen, ob der a<sup>=b</sup>=a^=b-Trick hier verwertbar ist.<br />
So ungefähr</p>
<pre><code class="language-cpp">//nur geraten
a^=((b&gt;&gt;posb)&amp;1)&lt;&lt;posa;
b^=((a&gt;&gt;posa)&amp;1)&lt;&lt;posb;
b^=((a&gt;&gt;posa)&amp;1)&lt;&lt;posb;
//nicht hübsch
</code></pre>
</blockquote>
<p>Auch deine Codes habe ich auf diese Weise getestet.<br />
Es kommt aber am Ende nicht mehr das gleiche Ergebnis raus. Es scheint also etwas schief zu laufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1848245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1848245</guid><dc:creator><![CDATA[Zulooo]]></dc:creator><pubDate>Sun, 31 Jan 2010 19:53:42 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Mon, 01 Feb 2010 17:15:21 GMT]]></title><description><![CDATA[<p>Zulooo schrieb:</p>
<blockquote>
<p>Hey, wie kann ich das n-te Bit der Variable a mit dem m-ten Bit der Variable b tauschen?<br />
...<br />
Wie geht das? <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>
</blockquote>
<p>Wenn die zu tauschenden Bits gleich sind, braucht man sie nicht zu tauschen, stimmt's ?<br />
Sind diese Bits ungleich, toggelt man sie und fertig!</p>
<pre><code class="language-cpp">void swapBit(int&amp; var1, size_t pos1, int&amp; var2, size_t pos2)
{
   if (((var1 &gt;&gt; pos1) &amp; 1) != ((var2 &gt;&gt; pos2) &amp; 1))
   {
		var1 ^= (1 &lt;&lt; pos1);
		var2 ^= (1 &lt;&lt; pos2);
   }
}
</code></pre>
<p><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>
]]></description><link>https://www.c-plusplus.net/forum/post/1848708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1848708</guid><dc:creator><![CDATA[otto8]]></dc:creator><pubDate>Mon, 01 Feb 2010 17:15:21 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Mon, 01 Feb 2010 17:47:45 GMT]]></title><description><![CDATA[<p>So?</p>
<pre><code class="language-cpp">static inline int swapBit( int value, int i, int j )
{
	int swap = ( ( value &gt;&gt; i ) ^ ( value &gt;&gt; j ) ) &amp; 1;
	return value ^ ( ( swap &lt;&lt; i ) | ( swap &lt;&lt; j ) );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1848725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1848725</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 01 Feb 2010 17:47:45 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Mon, 01 Feb 2010 18:09:29 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>So?</p>
<pre><code class="language-cpp">static inline int swapBit( int value, int i, int j )
{
	int swap = ( ( value &gt;&gt; i ) ^ ( value &gt;&gt; j ) ) &amp; 1;
	return value ^ ( ( swap &lt;&lt; i ) | ( swap &lt;&lt; j ) );
}
</code></pre>
</blockquote>
<p>So:</p>
<pre><code class="language-cpp">static inline int swapBit( int value, int i, int j )
{
    if (((value &gt;&gt; i) &amp; 1) != ((value &gt;&gt; j) &amp; 1))
		value ^= ((1 &lt;&lt; i) | (1 &lt;&lt; j));
	return value;
}
</code></pre>
<p><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>
]]></description><link>https://www.c-plusplus.net/forum/post/1848739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1848739</guid><dc:creator><![CDATA[otto8]]></dc:creator><pubDate>Mon, 01 Feb 2010 18:09:29 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Mon, 01 Feb 2010 18:19:31 GMT]]></title><description><![CDATA[<p>otto8 schrieb:</p>
<blockquote>
<p>So:</p>
<pre><code class="language-cpp">static inline int swapBit( int value, int i, int j )
{
    if (((value &gt;&gt; i) &amp; 1) != ((value &gt;&gt; j) &amp; 1))
		value ^= ((1 &lt;&lt; i) | (1 &lt;&lt; j));
	return value;
}
</code></pre>
<p><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>
</blockquote>
<p>Auf keinen Fall! <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="😉"
    /> So:</p>
<pre><code class="language-cpp">static inline int swap( int value, int i, int j )
{
	return ( ( ( value &gt;&gt; i ) ^ ( value &gt;&gt; j ) ) &amp; 1 )
		? value ^ ( ( 1 &lt;&lt; i ) | ( 1 &lt;&lt; j ) ) 
		: value;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1848748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1848748</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 01 Feb 2010 18:19:31 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Tue, 02 Feb 2010 15:46:43 GMT]]></title><description><![CDATA[<p>Eine Offtopic-Frage: Ist Code, der nach jedem Token ein Leerzeichen verwendet, wirklich so viel leserlicher als Code, der durchgehend ohne Leerzeichen auskommt? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1849232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849232</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 02 Feb 2010 15:46:43 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Tue, 02 Feb 2010 16:04:40 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Eine Offtopic-Frage: Ist Code, der nach jedem Token ein Leerzeichen verwendet, wirklich so viel leserlicher als Code, der durchgehend ohne Leerzeichen auskommt? <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>
</blockquote>
<p>Sharp oder IBM?<br />
Manche machen auch nach jeder Zeile eine Leerzeile, außer da, wo ich statt der zwei zusammegehörenden Zeilen lieber bloß eine geschrieben hätte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849241</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 02 Feb 2010 16:04:40 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Tue, 02 Feb 2010 17:16:59 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Eine Offtopic-Frage: Ist Code, der nach jedem Token ein Leerzeichen verwendet, wirklich so viel leserlicher als Code, der durchgehend ohne Leerzeichen auskommt? <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>
</blockquote>
<p>Ich finde oftmals ja. In einer Situation, wie oben muss man den Ausdruck eh recht genau anschauen, wenn man mit den Klammern nicht durcheinander kommen will, aber ich mache auch gerne Abstände, damit ich den Code nicht lesen, sondern nur anschauen muss. Wenn jetzt alles zusammen klebt übersehe ich leicht eine Klammer oder ein Zeichen o.ä.</p>
<p>Ich grupiere auch gerne Anweisungen, wie volkard anspricht. Jetzt nicht prinzipiell nach jeder Zeile ein Abstand, aber wenn ich 3-4 Aufrufe z.B auf das gleiche Objekt habe, dann kommen die nache zu einander, Leerzeile und das anderere Anweisungen.</p>
<pre><code class="language-cpp">foo.f ();
foo.bar ();
foo.foobar ();

baz.foo ();
baz.bar ();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1849280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849280</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 02 Feb 2010 17:16:59 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Tue, 02 Feb 2010 19:47:33 GMT]]></title><description><![CDATA[<p>Natürlich ist es sinnvoll, Abstände zu benutzen. In meinen Augen tragen Whitespaces jedoch besonders dann zur Übersicht bei, wenn man sie unterschiedlich stark einsetzt.</p>
<pre><code class="language-cpp">(7*x - 3*y + 5) / (4*x + 5*y - 8)
</code></pre>
<p>Anweisungen zeilenweise gruppieren tue ich auch. Aber eben, auf diese Weise werden Newlines wieder mit Mass verwendet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849391</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 02 Feb 2010 19:47:33 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Tue, 02 Feb 2010 19:57:26 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<pre><code class="language-cpp">foo.f ();
foo.bar ();
foo.foobar ();

baz.foo ();
baz.bar ();
</code></pre>
</blockquote>
<p>da könntest doch auch schon fast über chaining nachdenken</p>
<pre><code class="language-cpp">foo.f().bar().foobar();
baz.foo().bar();
</code></pre>
<p>evtl. gehts auch nur so</p>
<pre><code class="language-cpp">foo-&gt;f()-&gt;bar()-&gt;foobar();
baz-&gt;foo()-&gt;bar();
</code></pre>
<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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849398</guid><dc:creator><![CDATA[noobLolo]]></dc:creator><pubDate>Tue, 02 Feb 2010 19:57:26 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Tue, 02 Feb 2010 20:06:03 GMT]]></title><description><![CDATA[<p>Es ginge schon beides, abhängig davon, ob eine Referenz oder ein Zeiger zurückgegeben würde.</p>
<p>Chaining ist im Grunde genommen eine interessante Technik, aber in vielen Fällen macht sie den Code nur noch unübersichtlicher. Denn weniger Zeilen ist nicht unbedingt besser.</p>
<pre><code class="language-cpp">image.set_size(22, 13).set_background_color(color::green).set_rotation(15.5f);
// vs.
image.set_size(22, 13)
image.set_background_color(color::green)
image.set_rotation(15.5f);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1849407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849407</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 02 Feb 2010 20:06:03 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Tue, 02 Feb 2010 20:11:10 GMT]]></title><description><![CDATA[<p>Test:</p>
<pre><code class="language-cpp">z = (7*x - 3*y + 5) / (4*x + 5*y - 8)
</code></pre>
<pre><code class="language-cpp">z = (7*x-3*y+5) / (4*x+5*y-8)
</code></pre>
<pre><code class="language-cpp">z=(7*x-3*y+5)/(4*x+5*y-8)
</code></pre>
<pre><code class="language-cpp">z= (7*x - 3*y + 5) 
   /
   (4*x + 5*y - 8)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1849411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849411</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 02 Feb 2010 20:11:10 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Tue, 02 Feb 2010 20:14:39 GMT]]></title><description><![CDATA[<p>also den größten flächeninhalt hat das letzte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849414</guid><dc:creator><![CDATA[noobLolo]]></dc:creator><pubDate>Tue, 02 Feb 2010 20:14:39 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Tue, 02 Feb 2010 20:35:01 GMT]]></title><description><![CDATA[<p>Kompromiss? <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>
<pre><code class="language-cpp">z = (7*x - 3*y + 5) 
  / (4*x + 5*y - 8);
</code></pre>
<p>Aber das mache ich eigentlich eher selten. Kommt ja auch nicht allzu häufig vor, dass man Teilausdrücke einander so schön zuordnen kann. Was ich manchmal bei komplexeren Ausdrücken mache:</p>
<pre><code class="language-cpp">foo.bar(
    vector2(
        32.5f + random(-4.f, 4.f) - 25.8f*foo.bir(),
        66.7f),
    124.4f - random(3.f, 7.f)/foo.bor(),
    &quot;a string&quot;);
</code></pre>
<p>Ich muss allerdings gestehen, dass ich Abstände bei verschiedenen Operatoren nicht immer ganz strikt handhabe. Ich habe diesbezüglich noch kein Optimum gefunden, das man verallgemeinern könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849431</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 02 Feb 2010 20:35:01 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Tue, 02 Feb 2010 20:48:04 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">foo.bar(
    vector2(
        32.5f+random(-4.f,4.f)-25.8f*foo.bir()
       ,66.7f
    )
    ,124.4f-random(3.f,7.f)/foo.bor()
    ,&quot;a string&quot;
);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1849440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849440</guid><dc:creator><![CDATA[noobLolo]]></dc:creator><pubDate>Tue, 02 Feb 2010 20:48:04 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Tue, 02 Feb 2010 20:52:14 GMT]]></title><description><![CDATA[<p>Chaining kann man machen, aber das macht imo nur dort Sinn, wo von einer Klasse wirklich ein solchen sehr intensives benutzen von einfachen Funktionen erwartet wird. (Hab das mal bei einer HTML Klasse oder so gesehen).</p>
<p>Ansonsten ist es wahrscheinlich Overkill dafür jeder Klasse eine Referenz auf sich selbt zurückgeben zu lassen, nur damit man das ev. mal machen kann. (Rückgabewerte kann man da ja auch nicht mehr so schön einbringen)</p>
<p>Bei volkards Beispiel würde ich die erste Variante bevorzugen.<br />
In wirklichem Code würde wahrscheinlich die letzte Variante sehr merkwürdig aussehen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849446</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 02 Feb 2010 20:52:14 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Wed, 03 Feb 2010 05:52:53 GMT]]></title><description><![CDATA[<p>Leute ich kapier des mit den bits no net so ganz. Will jetzt zum bispiel flags setzen. Mach ich mir dann einfach eine char variable die ja 8 bit hat. So und dann muss ich gucken den buchstabe den ich der variable gebe welchem zahlenwert der entspricht und damm schaun wie davon die binäre zahl aussieht? Wenn ich dann genau das 4. Bit ändern will muss ich dass ja mit und oder oder so machen. Und wie kann ich dann z.b abfragen ob genau das 4. Bit true ist?</p>
<p>Danke schonmal;-)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849553</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Wed, 03 Feb 2010 05:52:53 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Wed, 03 Feb 2010 08:41:32 GMT]]></title><description><![CDATA[<p>Warum nicht einfach std::bitset verwenden?</p>
<pre><code class="language-cpp">// Bits:
std::bitset&lt;32&gt; myBits;

// Bits vertauschen:
std::swap(myBits[3], myBits[5]);

// Abfragen:
if (myBits.test(4)) ...
</code></pre>
<p>Warum immer kompliziert? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1849590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849590</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Wed, 03 Feb 2010 08:41:32 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Wed, 03 Feb 2010 09:30:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char a = 0;      // kein Bit gesetzt (Bit 0 bis 7 == 0)

    a = (a | 1&lt;&lt;3);  // Bit 3 setzen ( or )
    a = (a ^ 1&lt;&lt;3);  // Bit 3 umkippen (toggeln) (xor) ist nun wieder 0  
    a = (a &amp; 1&lt;&lt;3);  // Bit 3 testen (and) ist 0
    a = (a ^ 1&lt;&lt;3);  // Bit 3 toggle (xor) ist nun 1
    a = (a &amp; 1&lt;&lt;3);  // Bit 3 testen (and) ist 1
    a = (a &amp; ~(1&lt;&lt;3)); // Bit 3 loeschen
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1849607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849607</guid><dc:creator><![CDATA[bit bit]]></dc:creator><pubDate>Wed, 03 Feb 2010 09:30:56 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Wed, 03 Feb 2010 15:33:25 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/17700">@Fellhuhn</a>: ich mag deine Antwort! std 4thewin</p>
<p>... aber du mußt den anderen jetzt noch sagen, daß hier die bits von &quot;links&quot; gezählt werden. (Bit 0 ist das Most Significant Bit (MSB), Bit 31 ist das LSB). Nicht daß sich hier einer noch verzählt.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23000">@fr33g</a>: Du kannst mit bitset Deine 8bit Flagge auch lesbarer als mit einem &quot;Buchstaben&quot; initialisieren:</p>
<pre><code class="language-cpp">bitset&lt;8&gt; flag (string(&quot;01010011&quot;));
</code></pre>
<p>Hier die noch mehr Info zum bitset: <a href="http://www.cplusplus.com/reference/stl/bitset/" rel="nofollow">http://www.cplusplus.com/reference/stl/bitset/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849905</guid><dc:creator><![CDATA[Carstig]]></dc:creator><pubDate>Wed, 03 Feb 2010 15:33:25 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Wed, 03 Feb 2010 16:14:39 GMT]]></title><description><![CDATA[<p>ok dankeschön<br />
jetzt kapier ichs=)</p>
<p>bzw eine kleine frage noch:</p>
<p>Wann muss ich von links ab zählen mit 0 und wann von rechts??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1849918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1849918</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Wed, 03 Feb 2010 16:14:39 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Thu, 04 Feb 2010 16:13:50 GMT]]></title><description><![CDATA[<p>Das ist eine &quot;Vereinbarungssache&quot; bzw Definitionssache, wann man von links oder rechts zählt.</p>
<p>Was ich sagen will: es gibt Hardware-Architekturen, da ist das Bit ganz links bit #0 (zB Power). Und bei Intel ist Bit#0 ganz rechts.</p>
<p>Bei mir an der Uni wurde immer von rechts gezählt (war ja auch logisch: bit #0 == 2 hoch 0 ). Damals wurde mir erzählt, daß Intel, Motorola etc von rechts zählen und IBM von links. Da war dann von rechts bei mir also normal.</p>
<p>Bei mir in der Firma zählt man immer von Links. Also ist das für mich inzwischen &quot;normal&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1850530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1850530</guid><dc:creator><![CDATA[Carstig]]></dc:creator><pubDate>Thu, 04 Feb 2010 16:13:50 GMT</pubDate></item><item><title><![CDATA[Reply to Bit vertauschen on Thu, 04 Feb 2010 19:57:57 GMT]]></title><description><![CDATA[<p>fr33g schrieb:</p>
<blockquote>
<p>...<br />
bzw eine kleine frage noch:</p>
<p>Wann muss ich von links ab zählen mit 0 und wann von rechts??</p>
</blockquote>
<p>Nehm z.B. die Zahl 1 als Wert einer Integer-Variablen, da ist immer das Bit 0 = 1 !<br />
Egal wo dieses Bit in Wirklichkeit im Speicher steht, beim Code schreiben steht es für Dich ganz rechts !<br />
Denn 1 &lt;&lt; 1 (Bits um 1 Position nach links schieben) Multiplikation mit 2, 1 &lt;&lt; 2 Multiplikation mit 4 usw.<br />
bzw. 1 &gt;&gt; 1 (Bits um 1 Position nach rechts schieben) Division durch 2 (Integerdivision 1/2 = 0)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1850648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1850648</guid><dc:creator><![CDATA[KLAR]]></dc:creator><pubDate>Thu, 04 Feb 2010 19:57:57 GMT</pubDate></item></channel></rss>