<?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[Modulo mit negativen Zahlen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab mal ne einfache Frage:<br />
Warum liefert</p>
<pre><code class="language-cpp">signed int i = -1;
 	std::cout &lt;&lt; (i%13)&lt;&lt; std::endl;
</code></pre>
<p>entgegen meiner Annahme -1 und nicht 12 zurück?</p>
<p>Gruß,<br />
Modulo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/182513/modulo-mit-negativen-zahlen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 21:11:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182513.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 May 2007 19:29:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Modulo mit negativen Zahlen on Fri, 25 May 2007 19:29:54 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab mal ne einfache Frage:<br />
Warum liefert</p>
<pre><code class="language-cpp">signed int i = -1;
 	std::cout &lt;&lt; (i%13)&lt;&lt; std::endl;
</code></pre>
<p>entgegen meiner Annahme -1 und nicht 12 zurück?</p>
<p>Gruß,<br />
Modulo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1292417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1292417</guid><dc:creator><![CDATA[Modulo]]></dc:creator><pubDate>Fri, 25 May 2007 19:29:54 GMT</pubDate></item><item><title><![CDATA[Reply to Modulo mit negativen Zahlen on Fri, 25 May 2007 19:42:46 GMT]]></title><description><![CDATA[<p>Module liefert den Rest einer Integer Division:</p>
<p>(-1)/13 = 0<br />
Der Rest ist dann (-1) - 0*13 = -1.<br />
Daher <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>Wenn du 12 willst machs so:</p>
<pre><code class="language-cpp">int special_modulo(int a, int b)
{
    int m = a % b;
    return m &gt;= 0 ? m : m + b;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1292426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1292426</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 25 May 2007 19:42:46 GMT</pubDate></item><item><title><![CDATA[Reply to Modulo mit negativen Zahlen on Fri, 25 May 2007 21:51:36 GMT]]></title><description><![CDATA[<p>Es sollte dennoch beachtet werden, sofern einer der Operanden negativ ist, ist das Vorzeichen des Restes implementationsspezifisch. Oder anderes formuliert, das Ergebnis hängt von den Operanden ab.</p>
<p>Der Standard macht lediglich folgende Aussage</p>
<pre><code>(a/b)*b + a%b = a
</code></pre>
<p>Und auf das Beispiel bezogen</p>
<pre><code>(-1/13)*13 + -1%13 = -1
0*13 + -1%13 = -1
-1%13 = -1
</code></pre>
<p>Womit klar sein sollte, welches Ergebnis die Rechnung liefert. Damit kannst du auch mal testen, welches Ergebnis 1%-13 liefert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1292480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1292480</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Fri, 25 May 2007 21:51:36 GMT</pubDate></item></channel></rss>