<?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[ROL in C++?]]></title><description><![CDATA[<p>Hi!<br />
Ich experimentiere gerade mit hashing rum und habe gerade nen Hash Beispielquellcode kopiert. Der Compiler kann die ROL() funktion allerdings nicht finden. Soweit ich weiß, kann man mit ROL die Bits irgendwie verschieben. Weiß zufällig jemand, wo ROL definiert ist?</p>
<pre><code class="language-cpp">lpdwBuffer[i+16] = ROL(1, (lpdwBuffer[i] ^ lpdwBuffer[i+8] ^ lpdwBuffer[i+2] ^ lpdwBuffer[i+13]) % 32);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/126855/rol-in-c</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 22:13:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/126855.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 19 Nov 2005 11:21:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ROL in C++? on Sat, 19 Nov 2005 11:21:45 GMT]]></title><description><![CDATA[<p>Hi!<br />
Ich experimentiere gerade mit hashing rum und habe gerade nen Hash Beispielquellcode kopiert. Der Compiler kann die ROL() funktion allerdings nicht finden. Soweit ich weiß, kann man mit ROL die Bits irgendwie verschieben. Weiß zufällig jemand, wo ROL definiert ist?</p>
<pre><code class="language-cpp">lpdwBuffer[i+16] = ROL(1, (lpdwBuffer[i] ^ lpdwBuffer[i+8] ^ lpdwBuffer[i+2] ^ lpdwBuffer[i+13]) % 32);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/921246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921246</guid><dc:creator><![CDATA[Perner]]></dc:creator><pubDate>Sat, 19 Nov 2005 11:21:45 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sat, 19 Nov 2005 11:42:50 GMT]]></title><description><![CDATA[<p>Eine Funktion namens ROL existiert nicht im C- oder C++-Standard.<br />
Zum verschieben von Bits verwendet man die Operatoren &lt;&lt; und &gt;&gt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921269</guid><dc:creator><![CDATA[Chew-Z]]></dc:creator><pubDate>Sat, 19 Nov 2005 11:42:50 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sat, 19 Nov 2005 11:52:52 GMT]]></title><description><![CDATA[<p>Ahh ok. Und was davon ist ROL? &lt;&lt; nehme ich mal an (Rotate Left?)</p>
<p>edit:<br />
Dann müsste ja</p>
<pre><code class="language-cpp">ROL(a,5) = a &lt;&lt; 5
</code></pre>
<p>und somit</p>
<pre><code class="language-cpp">lpdwBuffer[i+16] = ROL(1, (lpdwBuffer[i] ^ lpdwBuffer[i+8] ^ lpdwBuffer[i+2] ^ lpdwBuffer[i+13]) % 32);
</code></pre>
<p>Dann</p>
<pre><code class="language-cpp">lpdwBuffer[i+16] = (1 &lt;&lt; (lpdwBuffer[i] ^ lpdwBuffer[i+8] ^ lpdwBuffer[i+2] ^ lpdwBuffer[i+13]) % 32);
</code></pre>
<p>sein, richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921270</guid><dc:creator><![CDATA[Perner]]></dc:creator><pubDate>Sat, 19 Nov 2005 11:52:52 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sat, 19 Nov 2005 11:52:25 GMT]]></title><description><![CDATA[<p>&lt;&lt; ist ein left-shif. Ein Rotieren nach links gibt es nicht. Must du dir selbst bauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921278</guid><dc:creator><![CDATA[Helium]]></dc:creator><pubDate>Sat, 19 Nov 2005 11:52:25 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sat, 19 Nov 2005 12:18:26 GMT]]></title><description><![CDATA[<p>Wo ist der Unterschied?</p>
<p>Rotate: 10001000 &lt;&lt; 1 = 00010001<br />
Shift: 10001000 &lt;&lt; 1 = 00010000</p>
<p>???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921315</guid><dc:creator><![CDATA[Perner]]></dc:creator><pubDate>Sat, 19 Nov 2005 12:18:26 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sat, 19 Nov 2005 12:19:26 GMT]]></title><description><![CDATA[<p>Perner schrieb:</p>
<blockquote>
<p>Wo ist der Unterschied?</p>
<p>Rotate: 10001000 &lt;&lt; 1 = 00010001<br />
Shift: 10001000 &lt;&lt; 1 = 00010000</p>
<p>???</p>
</blockquote>
<p>guck einfach auf die Zahlen (vor allem auf das niederwertigste Bit)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921318</guid><dc:creator><![CDATA[Helium]]></dc:creator><pubDate>Sat, 19 Nov 2005 12:19:26 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sat, 19 Nov 2005 12:20:14 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1836">@Helium</a>: Er sieht den Unterschied, er wollte nur noch eine Bestätigung dafür, dass das stimmt <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>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921319</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sat, 19 Nov 2005 12:20:14 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sat, 19 Nov 2005 12:24:58 GMT]]></title><description><![CDATA[<p>rrrrööööööchtöööööch! <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/921323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921323</guid><dc:creator><![CDATA[Perner]]></dc:creator><pubDate>Sat, 19 Nov 2005 12:24:58 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sat, 19 Nov 2005 12:37:32 GMT]]></title><description><![CDATA[<p>Sagt mal, in assembler gibt es doch ROT oder nicht? Kann man das nicht einfach mit Inline Assembler machen, bevor ich mir es selber schreiben muss?<br />
Das ging doch irgendwie so:</p>
<p>_asm<br />
{<br />
}</p>
<p>oder war es doch __asm?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921332</guid><dc:creator><![CDATA[Perner]]></dc:creator><pubDate>Sat, 19 Nov 2005 12:37:32 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sat, 19 Nov 2005 13:06:38 GMT]]></title><description><![CDATA[<p>Kann man schon, nur dann wird der Code denkbar unportabel. Vorallem haben verschiedene Compiler verschiedene Vorstellungen von Assembler Syntax.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921360</guid><dc:creator><![CDATA[japro]]></dc:creator><pubDate>Sat, 19 Nov 2005 13:06:38 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sat, 19 Nov 2005 15:24:57 GMT]]></title><description><![CDATA[<p>Angenommen int ist 32Bit breit, dann sollte folgendes gehen:</p>
<pre><code class="language-cpp">int rol (int value, int by)
{
   return value &lt;&lt; by | value &gt;&gt; (32 - by);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/921469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921469</guid><dc:creator><![CDATA[Helium]]></dc:creator><pubDate>Sat, 19 Nov 2005 15:24:57 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sat, 19 Nov 2005 17:42:03 GMT]]></title><description><![CDATA[<p>man könnte auch</p>
<pre><code class="language-cpp">int rol (int value, int by)
{
   return value &lt;&lt; by | value &gt;&gt; (sizeof(int) - by);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/921582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921582</guid><dc:creator><![CDATA[S. Hifft]]></dc:creator><pubDate>Sat, 19 Nov 2005 17:42:03 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sat, 19 Nov 2005 17:44:00 GMT]]></title><description><![CDATA[<p>sizeof(int) ist aber 4.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921587</guid><dc:creator><![CDATA[32]]></dc:creator><pubDate>Sat, 19 Nov 2005 17:44:00 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sat, 19 Nov 2005 18:00:26 GMT]]></title><description><![CDATA[<p>verdammt!<br />
dann halt</p>
<pre><code class="language-cpp">int rol (int value, int by)
{
   return value &lt;&lt; by | value &gt;&gt; (sizeof(int) * BITS_PER_BYTE - by);
}
</code></pre>
<p>und wo die konstante deklariert ist, und wie sie wirklich heißt, müsst ihr selber nachgucken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921604</guid><dc:creator><![CDATA[verlöngerer]]></dc:creator><pubDate>Sat, 19 Nov 2005 18:00:26 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sun, 20 Nov 2005 12:23:15 GMT]]></title><description><![CDATA[<p>BITS_PER_BYTE gibts übrigens auch und nennt sich CHAR_BIT.<br />
Die rol Funktion ist allerdings nicht zuverlässig, da mit signed Werten gearbeitet wird. Das funktioniert so nur mit unsigned Werten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/922095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/922095</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sun, 20 Nov 2005 12:23:15 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sun, 20 Nov 2005 12:37:23 GMT]]></title><description><![CDATA[<p>japro schrieb:</p>
<blockquote>
<p>Kann man schon, nur dann wird der Code denkbar unportabel. Vorallem haben verschiedene Compiler verschiedene Vorstellungen von Assembler Syntax.</p>
</blockquote>
<p>Naja, man kann ja mit #ifdef schön absichern und dann meldet sich der Compiler wenn's führ ihn noch keine Version gibt, einfach #else #error verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/922122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/922122</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Sun, 20 Nov 2005 12:37:23 GMT</pubDate></item><item><title><![CDATA[Reply to ROL in C++? on Sun, 20 Nov 2005 15:42:10 GMT]]></title><description><![CDATA[<p>groovemaster schrieb:</p>
<blockquote>
<p>BITS_PER_BYTE gibts übrigens auch und nennt sich CHAR_BIT.<br />
Die rol Funktion ist allerdings nicht zuverlässig, da mit signed Werten gearbeitet wird. Das funktioniert so nur mit unsigned Werten.</p>
</blockquote>
<p>Vor den Kopf schlag. Naja. Sowas hätte ich bei der Verwendung ganz schnell gemerkt <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/922348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/922348</guid><dc:creator><![CDATA[Helium]]></dc:creator><pubDate>Sun, 20 Nov 2005 15:42:10 GMT</pubDate></item></channel></rss>