<?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[Frage zu Bitshift]]></title><description><![CDATA[<p>hallo,</p>
<p>ich möchte mit diesem &quot;Programm&quot; Bits um zwei stellen shiften, funktioniert soweit auch <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="😉"
    /> Was ich nun tun müsste, wäre die &quot;hinausgeschobenen&quot; Bits irgendwo hinspeichern... hab leider keine idee wie das gehen sollte.</p>
<p>also hier mal mein &quot;Programm&quot;:</p>
<pre><code class="language-cpp">int main()
{
    int bitmask = 0xFF;
    int shift = 0x2;

    cout &lt;&lt; bitmask &lt;&lt; endl;
    cout &lt;&lt; &quot;after SHIFT&quot; &lt;&lt; endl;
    bitmask = bitmask &gt;&gt; shift;
    cout &lt;&lt; bitmask &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>kann mir jemand einen tipp geben?</p>
<p>danke &amp; lg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/283337/frage-zu-bitshift</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 16:42:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/283337.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Mar 2011 20:42:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Bitshift on Wed, 09 Mar 2011 20:42:07 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>ich möchte mit diesem &quot;Programm&quot; Bits um zwei stellen shiften, funktioniert soweit auch <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="😉"
    /> Was ich nun tun müsste, wäre die &quot;hinausgeschobenen&quot; Bits irgendwo hinspeichern... hab leider keine idee wie das gehen sollte.</p>
<p>also hier mal mein &quot;Programm&quot;:</p>
<pre><code class="language-cpp">int main()
{
    int bitmask = 0xFF;
    int shift = 0x2;

    cout &lt;&lt; bitmask &lt;&lt; endl;
    cout &lt;&lt; &quot;after SHIFT&quot; &lt;&lt; endl;
    bitmask = bitmask &gt;&gt; shift;
    cout &lt;&lt; bitmask &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>kann mir jemand einen tipp geben?</p>
<p>danke &amp; lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2031972</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2031972</guid><dc:creator><![CDATA[buzz_lightzyear]]></dc:creator><pubDate>Wed, 09 Mar 2011 20:42:07 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Bitshift on Wed, 09 Mar 2011 20:52:08 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">unsigned int herausgeschobene_bits;
unsigned int mask = 0xFF;
unsigned ins shift = 0x2;
herausgeschobene_bits = ((~0u)&gt;&gt;(sizeof(int)*CHAR_BIT-shift))) &amp; mask;
mask &gt;&gt;= shift;
std::cout&lt;&lt;&quot;mask nach shift: &quot;&lt;&lt;mask&lt;&lt;std::endl;
std::cout&lt;&lt;&quot;rechts herausgeschobene bits: &quot;&lt;&lt;herausgeschobene bits;
</code></pre>
<p>Geht bestimmt auch eleganter, aber sollte so funktionieren (gilt allerdings nicht für shift = 0, da shift um sizeof(T)*CHAR_BIT nicht definiert ist)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2031974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2031974</guid><dc:creator><![CDATA[asdfasd]]></dc:creator><pubDate>Wed, 09 Mar 2011 20:52:08 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Bitshift on Wed, 09 Mar 2011 21:17:52 GMT]]></title><description><![CDATA[<p>danke für deine hilfe... aber... noch jemand eine idee für mich?</p>
<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/2031978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2031978</guid><dc:creator><![CDATA[buzz_lightzyear]]></dc:creator><pubDate>Wed, 09 Mar 2011 21:17:52 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Bitshift on Wed, 09 Mar 2011 21:40:01 GMT]]></title><description><![CDATA[<p>Was hast du gegen die Idee von asdfasd?</p>
<p>Aber gut, hier noch was feines nicht portables. <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>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
int RechtsRausgeschobeneBits( unsigned int num, unsigned int shift )
{
	unsigned int leftShift(sizeof(unsigned int)*8-shift);
	return (num &lt;&lt; leftShift) &gt;&gt; leftShift;
}
int main()
{
	unsigned int bitmask = 0xFF;
	unsigned int shift = 0x2;
	cout &lt;&lt; bitmask &lt;&lt; endl;
	unsigned int draussen(RechtsRausgeschobeneBits(bitmask, shift));
	cout &lt;&lt; &quot;after shift: &quot; &lt;&lt; (bitmask &gt;&gt; shift) &lt;&lt; endl;
	cout &lt;&lt; &quot;outgeschifft(ed): &quot; &lt;&lt; draussen &lt;&lt; endl;
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2031985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2031985</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Wed, 09 Mar 2011 21:40:01 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Bitshift on Wed, 09 Mar 2011 21:54:24 GMT]]></title><description><![CDATA[<p>asdfasd schrieb:</p>
<blockquote>
<pre><code class="language-cpp">unsigned int herausgeschobene_bits;
unsigned int mask = 0xFF;
unsigned ins shift = 0x2;
herausgeschobene_bits = ((~0u)&gt;&gt;(sizeof(int)*CHAR_BIT-shift))) &amp; mask;
mask &gt;&gt;= shift;
std::cout&lt;&lt;&quot;mask nach shift: &quot;&lt;&lt;mask&lt;&lt;std::endl;
std::cout&lt;&lt;&quot;rechts herausgeschobene bits: &quot;&lt;&lt;herausgeschobene bits;
</code></pre>
<p>Geht bestimmt auch eleganter, aber sollte so funktionieren (gilt allerdings nicht für shift = 0, da shift um sizeof(T)*CHAR_BIT nicht definiert ist)</p>
</blockquote>
<p>So würde ich es auch machen, bis auf</p>
<pre><code class="language-cpp">herausgeschobene_bits = mask &amp; ((1 &lt;&lt; shift) - 1)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2031986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2031986</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Wed, 09 Mar 2011 21:54:24 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Bitshift on Wed, 09 Mar 2011 22:10:37 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/26567">@MichaelE</a>: Wusste ich doch, dass es eleganter geht :&gt;</p>
<p>Vielleicht ist noch interessant zu erwähnen, dass das ganze ohne &quot;unsigned&quot; garnicht mal so portabel ist :&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2031991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2031991</guid><dc:creator><![CDATA[asdfasd]]></dc:creator><pubDate>Wed, 09 Mar 2011 22:10:37 GMT</pubDate></item></channel></rss>