<?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 oder wie klappt ein vergleich zwischen signed und unsigned int?]]></title><description><![CDATA[<p>Hi,</p>
<p>Warum funktioniert der Vergleich zwischen einem signed und einem unsigned int?<br />
Dafür müsste ja einer der beiden Paramter in den Typen der anderen<br />
umgewandelt werden.</p>
<p>Bsp:</p>
<pre><code class="language-cpp">unsigned long int U = std::numeric_limits&lt; unsigned long int &gt;::max();
signed long int S = std::numeric_limits&lt; signed long int &gt;::min();

if( U &gt; S )
{
    ;
}
</code></pre>
<p>Beide Zahlen haben jetzt einen Wert den der andere nicht annehmen kann,<br />
da dieser außerhalb dessen Bereiches liegt.</p>
<p>Wie funktioniert nun der Vergleich?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/218662/warum-oder-wie-klappt-ein-vergleich-zwischen-signed-und-unsigned-int</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 15:10:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/218662.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Jul 2008 13:42:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Warum oder wie klappt ein vergleich zwischen signed und unsigned int? on Wed, 23 Jul 2008 13:42:01 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Warum funktioniert der Vergleich zwischen einem signed und einem unsigned int?<br />
Dafür müsste ja einer der beiden Paramter in den Typen der anderen<br />
umgewandelt werden.</p>
<p>Bsp:</p>
<pre><code class="language-cpp">unsigned long int U = std::numeric_limits&lt; unsigned long int &gt;::max();
signed long int S = std::numeric_limits&lt; signed long int &gt;::min();

if( U &gt; S )
{
    ;
}
</code></pre>
<p>Beide Zahlen haben jetzt einen Wert den der andere nicht annehmen kann,<br />
da dieser außerhalb dessen Bereiches liegt.</p>
<p>Wie funktioniert nun der Vergleich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552421</guid><dc:creator><![CDATA[Vergleicher]]></dc:creator><pubDate>Wed, 23 Jul 2008 13:42:01 GMT</pubDate></item><item><title><![CDATA[Reply to Warum oder wie klappt ein vergleich zwischen signed und unsigned int? on Wed, 23 Jul 2008 13:46:38 GMT]]></title><description><![CDATA[<p>Der signed Typ wird nach unsigned gewandelt, wenn ein unsigned Typ beteiligt ist.</p>
<p>Ist im C++ Standard unter 5 /9 - &quot;usual arithmetic conversions&quot; beschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552425</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Wed, 23 Jul 2008 13:46:38 GMT</pubDate></item><item><title><![CDATA[Reply to Warum oder wie klappt ein vergleich zwischen signed und unsigned int? on Thu, 24 Jul 2008 05:22:28 GMT]]></title><description><![CDATA[<blockquote>
<p>Beide Zahlen haben jetzt einen Wert den der andere nicht annehmen kann,<br />
da dieser außerhalb dessen Bereiches liegt.</p>
</blockquote>
<p>ist nich IMMER der Fall, solange für die Zahlen das erste Bit keine rolle spielt bzw. die zahlen so klein gehalten werden damit das erste bit nich verwendet wird^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552740</guid><dc:creator><![CDATA[poo&#x27;dded]]></dc:creator><pubDate>Thu, 24 Jul 2008 05:22:28 GMT</pubDate></item><item><title><![CDATA[Reply to Warum oder wie klappt ein vergleich zwischen signed und unsigned int? on Thu, 24 Jul 2008 10:51:21 GMT]]></title><description><![CDATA[<p>Ich habe mir jetzt die &quot;usual arithmetic conversions&quot; angeschaut,<br />
aber meine Frage konnte ich mir immer noch nicht beantworten.<br />
Ich weiß jetzt, in was convertiert wird, aber meiner Meinung nach<br />
ist dies nicht möglich, da die Zahlen verschiedene Bereiche haben.</p>
<p>Nochmal mein Beispiel:</p>
<pre><code class="language-cpp">unsigned long int U = std::numeric_limits&lt; unsigned long int &gt;::max();
signed long int S = std::numeric_limits&lt; signed long int &gt;::min();

if( U &gt; S )
{
    ;
}
</code></pre>
<p>Ich habe es kompiliert und der Vergleich stimmt, aber ich kann es mir nicht erklären.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552945</guid><dc:creator><![CDATA[Vergleicher]]></dc:creator><pubDate>Thu, 24 Jul 2008 10:51:21 GMT</pubDate></item><item><title><![CDATA[Reply to Warum oder wie klappt ein vergleich zwischen signed und unsigned int? on Thu, 24 Jul 2008 10:58:04 GMT]]></title><description><![CDATA[<p>Wenn der signed long nicht in unsigned long abbildbar ist weil negativ, ist das Ergebnis &quot;implementation defined&quot; - aus dem einfachen Grund, dass der Standard keine binäre Repräsentation vorschreibt. Bei 2er-Komplement-Darstellung sollte dir aber klar sein, was passiert, oder?</p>
<p>Nachlesen kannst du das im Standard unter 4.7 &quot;Integral conversions&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552949</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Thu, 24 Jul 2008 10:58:04 GMT</pubDate></item><item><title><![CDATA[Reply to Warum oder wie klappt ein vergleich zwischen signed und unsigned int? on Thu, 24 Jul 2008 11:16:23 GMT]]></title><description><![CDATA[<p>7H3 N4C3R schrieb:</p>
<blockquote>
<p>Wenn der signed long nicht in unsigned long abbildbar ist weil negativ, ist das Ergebnis &quot;implementation defined&quot; - aus dem einfachen Grund, dass der Standard keine binäre Repräsentation vorschreibt. Bei 2er-Komplement-Darstellung sollte dir aber klar sein, was passiert, oder?</p>
<p>Nachlesen kannst du das im Standard unter 4.7 &quot;Integral conversions&quot;.</p>
</blockquote>
<p>3.9.1/7 Satz 3 sowie<br />
4.7/2 und 3.9.1/4 lesen.</p>
<p>Das Ergebnis ist nur insoweit von der Implementation abhängig, wie der ursprüngliche vorzeichenbehaftete Wert es ist. Bzgl. des Ergebnisses der Umwandlung hat die Implementation keinen Spielraum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552958</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 24 Jul 2008 11:16:23 GMT</pubDate></item><item><title><![CDATA[Reply to Warum oder wie klappt ein vergleich zwischen signed und unsigned int? on Thu, 24 Jul 2008 12:02:47 GMT]]></title><description><![CDATA[<p>Du arbeitest nicht zufällig für das Standardisierungskomitee oder bist als Kind in einen Standard-Kessel gefallen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Ich finde es immer wieder erstaunlich, wie du solche kleinen (aber wichtigen) Details mal so aus dem Hut zauberst. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Ich war mir auch noch nicht bewusst, dass unsigned Arithmetik per Definition nicht überlaufen kann, bzw. das Ergebnis trotzdem immer definiert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552980</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Thu, 24 Jul 2008 12:02:47 GMT</pubDate></item><item><title><![CDATA[Reply to Warum oder wie klappt ein vergleich zwischen signed und unsigned int? on Fri, 25 Jul 2008 03:33:58 GMT]]></title><description><![CDATA[<p>Vielen Dank <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/1553308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1553308</guid><dc:creator><![CDATA[Vergleicher]]></dc:creator><pubDate>Fri, 25 Jul 2008 03:33:58 GMT</pubDate></item><item><title><![CDATA[Reply to Warum oder wie klappt ein vergleich zwischen signed und unsigned int? on Mon, 28 Jul 2008 07:30:40 GMT]]></title><description><![CDATA[<p>Eine Frage habe ich noch.</p>
<p>Bei den &quot;Usual arithmetic Conversions&quot; ist nie von dem<br />
long long int die Rede. Bei einem Vergleich zwischen long int<br />
und long long int, wird doch beides in einen long long int gecastet, oder?<br />
Im std steht davon nämlich nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1554904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1554904</guid><dc:creator><![CDATA[Vergleicher]]></dc:creator><pubDate>Mon, 28 Jul 2008 07:30:40 GMT</pubDate></item><item><title><![CDATA[Reply to Warum oder wie klappt ein vergleich zwischen signed und unsigned int? on Mon, 28 Jul 2008 08:40:33 GMT]]></title><description><![CDATA[<p>Es gibt kein long long int in C++, das gibts (bisher) nur in C99.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1554944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1554944</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 28 Jul 2008 08:40:33 GMT</pubDate></item></channel></rss>