<?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[Warum sind A*B*C != int( A*B*C ) ?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin auf eine Merkwürdigkeit des GNU C++ Compilers gestoßen:<br />
Warum ist <code>&quot;A*B*C&quot;</code> <strong>!=</strong> <code>&quot;static_cast&lt;int32_t&gt;( A*B*C )&quot;</code> ?</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int main()
{
    const int            A = -78992;
    const unsigned short B = 60;
    const unsigned int   C = 2;

    cout &lt;&lt; A*B*C &lt;&lt; &quot; != &quot; &lt;&lt; static_cast&lt;int32_t&gt;( A*B*C ) &lt;&lt; &quot; ???&quot; &lt;&lt; endl;

    return( 0 );
}
</code></pre>
<p>Ich weiß nicht ob das bei anderen C++ Compilern auch so ist.</p>
<p>Hat jemand eine Erklärung dafür?</p>
<p>Viele Grüße<br />
Bastian</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/255250/warum-sind-a-b-c-int-a-b-c</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 03:42:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/255250.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Nov 2009 19:38:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Warum sind A*B*C != int( A*B*C ) ? on Fri, 27 Nov 2009 19:38:38 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin auf eine Merkwürdigkeit des GNU C++ Compilers gestoßen:<br />
Warum ist <code>&quot;A*B*C&quot;</code> <strong>!=</strong> <code>&quot;static_cast&lt;int32_t&gt;( A*B*C )&quot;</code> ?</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int main()
{
    const int            A = -78992;
    const unsigned short B = 60;
    const unsigned int   C = 2;

    cout &lt;&lt; A*B*C &lt;&lt; &quot; != &quot; &lt;&lt; static_cast&lt;int32_t&gt;( A*B*C ) &lt;&lt; &quot; ???&quot; &lt;&lt; endl;

    return( 0 );
}
</code></pre>
<p>Ich weiß nicht ob das bei anderen C++ Compilern auch so ist.</p>
<p>Hat jemand eine Erklärung dafür?</p>
<p>Viele Grüße<br />
Bastian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1814386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1814386</guid><dc:creator><![CDATA[schern]]></dc:creator><pubDate>Fri, 27 Nov 2009 19:38:38 GMT</pubDate></item><item><title><![CDATA[Reply to Warum sind A*B*C != int( A*B*C ) ? on Fri, 27 Nov 2009 19:55:28 GMT]]></title><description><![CDATA[<p>wieso,<br />
was kriegst du für werter raus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1814392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1814392</guid><dc:creator><![CDATA[häh]]></dc:creator><pubDate>Fri, 27 Nov 2009 19:55:28 GMT</pubDate></item><item><title><![CDATA[Reply to Warum sind A*B*C != int( A*B*C ) ? on Fri, 27 Nov 2009 20:14:17 GMT]]></title><description><![CDATA[<p>Es könnte daran liegen, dass unsigned int einen höheren Rang als int (int32_t) hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1814396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1814396</guid><dc:creator><![CDATA[C++ Fan 2009]]></dc:creator><pubDate>Fri, 27 Nov 2009 20:14:17 GMT</pubDate></item><item><title><![CDATA[Reply to Warum sind A*B*C != int( A*B*C ) ? on Fri, 27 Nov 2009 20:57:41 GMT]]></title><description><![CDATA[<p>schern schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>ich bin auf eine Merkwürdigkeit des GNU C++ Compilers gestoßen:</p>
</blockquote>
<p>Das ist bei allen Compilern so, da wegen des fehlenden Rückgabetyps dieser über den Ausdruck &quot;A*B*C&quot; bestimmt wird, und da ein &quot;unsigned&quot; die größeren positiven Ganzzahlen halten kann, wird dieser als Rückgabetyp genommen, und das Ergebnis entsprechend konvertiert. In C++ (so auch in C) erfolgt leider keine Prüfung, ob der Wert negativ ist, und so nicht konvertiert werden kann. Dazu müßte man sich spezielle Klassen programmieren, die das unterstützen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1814418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1814418</guid><dc:creator><![CDATA[*john 0]]></dc:creator><pubDate>Fri, 27 Nov 2009 20:57:41 GMT</pubDate></item></channel></rss>