<?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[32-bitrotation..]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe die Funktion zum links-rotieren zwar schon irgendwo gefunden und auch erfolgreich in PHP-Umschreiben können, allerdings verstehe ich die Herleitung nicht.</p>
<pre><code class="language-cpp">function rotate_left ( &amp;$x, &amp;$n )
  {
    return ( ( $x &lt;&lt; $n) | ( $x &gt;&gt; ( 32 - $n) ) );
  }
  void rotate_left ( x, n )
  {
    return ( ( x &lt;&lt; n) | ( x &gt;&gt; ( 32 - n) ) );
  }
</code></pre>
<p>Und: Gibt es sowas wie &quot;&lt;&lt; &gt;&gt;&quot; in C++ für die Rotation, damit ich nicht die obige Funktion verwenden muss?</p>
<p>Danke schonmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143760/32-bitrotation</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 11:30:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143760.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Apr 2006 14:18:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 32-bitrotation.. on Tue, 11 Apr 2006 14:18:43 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe die Funktion zum links-rotieren zwar schon irgendwo gefunden und auch erfolgreich in PHP-Umschreiben können, allerdings verstehe ich die Herleitung nicht.</p>
<pre><code class="language-cpp">function rotate_left ( &amp;$x, &amp;$n )
  {
    return ( ( $x &lt;&lt; $n) | ( $x &gt;&gt; ( 32 - $n) ) );
  }
  void rotate_left ( x, n )
  {
    return ( ( x &lt;&lt; n) | ( x &gt;&gt; ( 32 - n) ) );
  }
</code></pre>
<p>Und: Gibt es sowas wie &quot;&lt;&lt; &gt;&gt;&quot; in C++ für die Rotation, damit ich nicht die obige Funktion verwenden muss?</p>
<p>Danke schonmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035290</guid><dc:creator><![CDATA[0_hirn]]></dc:creator><pubDate>Tue, 11 Apr 2006 14:18:43 GMT</pubDate></item><item><title><![CDATA[Reply to 32-bitrotation.. on Tue, 11 Apr 2006 14:34:58 GMT]]></title><description><![CDATA[<p>x &lt;&lt; n verschiebt erst mal alles um n Stellen nach links, die rechts neu dazukommenden Bits haben den Wert 0. Sie sollten allerdings die Werte der Bits übernehmen, die links rausfallen. Deshalb steht dahinter ein | ( x &gt;&gt; ( 32 - n) ). Beispiel:</p>
<pre><code>|          Speicherbereich          |
                    11000010.11111001.00011010.01010101				// n = 16
(11000010.11111001.)00011010.01010101.00000000.00000000				// x &lt;&lt; n
                    00000000.00000000.11000010.11111001(.00011010.01010101)	// x &gt;&gt; (32 - n)

                    00011010.01010101.11000010.11111001				// |-Verknüpfung der beiden Zeilen
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1035307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035307</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 11 Apr 2006 14:34:58 GMT</pubDate></item><item><title><![CDATA[Reply to 32-bitrotation.. on Tue, 11 Apr 2006 16:43:45 GMT]]></title><description><![CDATA[<p>Wichtig zu erwähnen wäre noch, dass man für das Shiften nur unsigned Werte benutzen sollte. Ansonsten bekommt man keine zuverlässigen Ergebnisse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035407</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Tue, 11 Apr 2006 16:43:45 GMT</pubDate></item></channel></rss>