<?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[Bitweise Operatoren]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe ein Array von 1 Byte großen Chars. In dem char sollen Zahlen von 0 - 63 und 2 bools abgelegt werden.</p>
<p>Er meckert bei der Zeile 6.</p>
<pre><code class="language-cpp">unsigned char cLevel::GetBlockType(unsigned int x, unsigned int y)
{
	if ((x &gt;= itsWidth) || (y &gt;= itsHeight))
		return 0;

	return itsBlocks[x+y*itsWidth] &amp; ~ (SlickBit | FinishBit);
}
</code></pre>
<p>Wenn ich das so schreibe, geht es:</p>
<pre><code class="language-cpp">unsigned char result = itsBlocks[x+y*itsWidth] &amp; ~ SlickBit;
result = result &amp; ~ FinishBit;
return result;
</code></pre>
<p>Warum geht den der erste Code nicht? Da sollte doch SlickBit (64) und FinishBit (128) OR-Verknüpft werden. Es würde 192 rauskommen. Und dann nur noch negieren und AND-Verknüpfen.</p>
<p>Der Compiler meldet folgende, für mich unverständlich Fehler:</p>
<pre><code>Fehler: expected `;' before »)« token	Level.cpp	line 87	1204364775606	24438
Fehler: expected `)' before »;« token	Level.cpp	line 87	1204364775605	24435
Fehler: expected primary-expression before »)« token	Level.cpp	line 87	1204364775606	24437
Fehler: expected primary-expression before »|« token	Level.cpp	line 87	1204364775606	24436
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/206885/bitweise-operatoren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 16:45:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/206885.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 01 Mar 2008 09:48:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bitweise Operatoren on Sat, 01 Mar 2008 09:48:59 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe ein Array von 1 Byte großen Chars. In dem char sollen Zahlen von 0 - 63 und 2 bools abgelegt werden.</p>
<p>Er meckert bei der Zeile 6.</p>
<pre><code class="language-cpp">unsigned char cLevel::GetBlockType(unsigned int x, unsigned int y)
{
	if ((x &gt;= itsWidth) || (y &gt;= itsHeight))
		return 0;

	return itsBlocks[x+y*itsWidth] &amp; ~ (SlickBit | FinishBit);
}
</code></pre>
<p>Wenn ich das so schreibe, geht es:</p>
<pre><code class="language-cpp">unsigned char result = itsBlocks[x+y*itsWidth] &amp; ~ SlickBit;
result = result &amp; ~ FinishBit;
return result;
</code></pre>
<p>Warum geht den der erste Code nicht? Da sollte doch SlickBit (64) und FinishBit (128) OR-Verknüpft werden. Es würde 192 rauskommen. Und dann nur noch negieren und AND-Verknüpfen.</p>
<p>Der Compiler meldet folgende, für mich unverständlich Fehler:</p>
<pre><code>Fehler: expected `;' before »)« token	Level.cpp	line 87	1204364775606	24438
Fehler: expected `)' before »;« token	Level.cpp	line 87	1204364775605	24435
Fehler: expected primary-expression before »)« token	Level.cpp	line 87	1204364775606	24437
Fehler: expected primary-expression before »|« token	Level.cpp	line 87	1204364775606	24436
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1465924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465924</guid><dc:creator><![CDATA[stefan315]]></dc:creator><pubDate>Sat, 01 Mar 2008 09:48:59 GMT</pubDate></item><item><title><![CDATA[Reply to Bitweise Operatoren on Sat, 01 Mar 2008 10:05:39 GMT]]></title><description><![CDATA[<p>Was soll den Zeile 6 sein?<br />
Indem was du gepostet hast, seh ich keienn Fehler</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1465936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465936</guid><dc:creator><![CDATA[Nasenkörscha]]></dc:creator><pubDate>Sat, 01 Mar 2008 10:05:39 GMT</pubDate></item><item><title><![CDATA[Reply to Bitweise Operatoren on Sat, 01 Mar 2008 10:27:27 GMT]]></title><description><![CDATA[<p>Danke für die Antwort.</p>
<p>Mit Zeile 6 meine ich die Zeilennummer vom Codeausschnitt.</p>
<p>Also das hier:</p>
<pre><code class="language-cpp">return itsBlocks[x+y*itsWidth] &amp; ~ (SlickBit | FinishBit);
</code></pre>
<p>Ich sehe darin eigentlich auch keinen Fehler.</p>
<p>Ich weiß nicht, ob es eine Rolle spielt, aber ich nutze Eclipse unter Ubuntu mit dem g++ Compiler.</p>
<p>---</p>
<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="😕"
    /> Der Fehler ist weg, sobald ich SlickBit und FinishBit durch die Zahlenwerte ersetze.</p>
<p>Ich hab den Fehler gefunden:</p>
<pre><code class="language-cpp">#define SlickBit 128;
#define FinishBit 64;
</code></pre>
<p>Ist klar, da ist einfach ein Semikolon zu viel. <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="😞"
    /> Da kann ich lange suchen.</p>
<p>Danke dir nochmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1465948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465948</guid><dc:creator><![CDATA[stefan315]]></dc:creator><pubDate>Sat, 01 Mar 2008 10:27:27 GMT</pubDate></item><item><title><![CDATA[Reply to Bitweise Operatoren on Sat, 01 Mar 2008 11:24:47 GMT]]></title><description><![CDATA[<p>Nutze in C++ besser &quot;const&quot; oder &quot;enum&quot; anstatt defines...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1465978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465978</guid><dc:creator><![CDATA[~C++]]></dc:creator><pubDate>Sat, 01 Mar 2008 11:24:47 GMT</pubDate></item><item><title><![CDATA[Reply to Bitweise Operatoren on Sat, 01 Mar 2008 11:37:10 GMT]]></title><description><![CDATA[<p>~C++ schrieb:</p>
<blockquote>
<p>Nutze in C++ besser &quot;const&quot; oder &quot;enum&quot; anstatt defines...</p>
</blockquote>
<p>In C++ const, in C enum. Würd ich sagen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1465983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465983</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 01 Mar 2008 11:37:10 GMT</pubDate></item><item><title><![CDATA[Reply to Bitweise Operatoren on Sat, 01 Mar 2008 11:47:13 GMT]]></title><description><![CDATA[<p>ProgChild schrieb:</p>
<blockquote>
<p>~C++ schrieb:</p>
<blockquote>
<p>Nutze in C++ besser &quot;const&quot; oder &quot;enum&quot; anstatt defines...</p>
</blockquote>
<p>In C++ const, in C enum. Würd ich sagen...</p>
</blockquote>
<p>in C gibt es auch 'const'.<br />
übrigens spricht nicht viel dagegen, sich konstanten mit #defines anzulegen. allerdings sind 'enums' immer das beste dafür.<br />
<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/1465993</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1465993</guid><dc:creator><![CDATA[konstanten-freak]]></dc:creator><pubDate>Sat, 01 Mar 2008 11:47:13 GMT</pubDate></item><item><title><![CDATA[Reply to Bitweise Operatoren on Sun, 02 Mar 2008 12:56:17 GMT]]></title><description><![CDATA[<p>Okay, mit den defines, enums und consts werde ich mich mal auseinandersetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1466586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1466586</guid><dc:creator><![CDATA[stefan315]]></dc:creator><pubDate>Sun, 02 Mar 2008 12:56:17 GMT</pubDate></item></channel></rss>