<?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[Standardvorgehensweise, ein Bit auf 0 zu setzen]]></title><description><![CDATA[<p>Hallo,<br />
ich wollte eine Funktion schreiben, die ein bestimmtes Bit eines unsigned int auf 0 setzt. Im Moment habe ich diese Version:</p>
<pre><code class="language-cpp">void unset(unsigned int position)
{
    zahl &amp;= ( (~0u) ^ ( 1u &lt;&lt; position ) );
}
</code></pre>
<p>zahl ist in dem Falle auch ein unsigned int. Die Funktion verundet also die zahl mit einem unsigned int, in dem alle bits auf 1 gesetzt sind, außer das an &quot;position&quot;. Aber irgendwie kommt mir dieser Weg so umständich vor.<br />
Gibt es eine andere - vll sogar gewöhnliche - Vorgehensweise, dieses Problem zu lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/256391/standardvorgehensweise-ein-bit-auf-0-zu-setzen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 09:10:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/256391.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Dec 2009 23:13:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Standardvorgehensweise, ein Bit auf 0 zu setzen on Fri, 11 Dec 2009 23:13:44 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich wollte eine Funktion schreiben, die ein bestimmtes Bit eines unsigned int auf 0 setzt. Im Moment habe ich diese Version:</p>
<pre><code class="language-cpp">void unset(unsigned int position)
{
    zahl &amp;= ( (~0u) ^ ( 1u &lt;&lt; position ) );
}
</code></pre>
<p>zahl ist in dem Falle auch ein unsigned int. Die Funktion verundet also die zahl mit einem unsigned int, in dem alle bits auf 1 gesetzt sind, außer das an &quot;position&quot;. Aber irgendwie kommt mir dieser Weg so umständich vor.<br />
Gibt es eine andere - vll sogar gewöhnliche - Vorgehensweise, dieses Problem zu lösen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1821427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1821427</guid><dc:creator><![CDATA[Malcolm85]]></dc:creator><pubDate>Fri, 11 Dec 2009 23:13:44 GMT</pubDate></item><item><title><![CDATA[Reply to Standardvorgehensweise, ein Bit auf 0 zu setzen on Fri, 11 Dec 2009 23:18:37 GMT]]></title><description><![CDATA[<p>Ein wenig kann ich schonmal rausmachen.</p>
<pre><code class="language-cpp">void unset(unsigned int position)
{
    zahl &amp;= ~( 1u &lt;&lt; position );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1821430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1821430</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 11 Dec 2009 23:18:37 GMT</pubDate></item><item><title><![CDATA[Reply to Standardvorgehensweise, ein Bit auf 0 zu setzen on Sat, 12 Dec 2009 12:28:42 GMT]]></title><description><![CDATA[<p>Malcolm85 schrieb:</p>
<blockquote>
<p>. Aber irgendwie kommt mir dieser Weg so umständich vor.<br />
Gibt es eine andere - vll sogar gewöhnliche - Vorgehensweise, dieses Problem zu lösen?</p>
</blockquote>
<p>Übersetzt sind das ca. 2 Maschinenbefehle. Ich glaube nicht, dass das noch besser geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1821519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1821519</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 12 Dec 2009 12:28:42 GMT</pubDate></item></channel></rss>