<?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[Frage zur shift Operation]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe folgenden Quelltext von einem Freund bekommen.<br />
Er meinte es kleines &quot;Puzzle&quot;</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void printHex(__int32 num)
{	
	printf(&quot;%X\n&quot;, num);
}

int main()
{                       
	printHex(0xBAAD&lt;&lt;16 + 0xFEED);

	std::cin.get();
	return 0;
}
</code></pre>
<p>Erwartete Ausgabe: BAADFEED<br />
Mein Gnu Compiler sagt mir, dass 0 raus kommt.</p>
<p>Ich bin im Moment an dem Punkt, dass ich weiss das zuerst die Addition stattfindet und dann geshiftet wird.<br />
also das 0xBAAD um 0xFF03 Stellen nach links geshiftet wird.<br />
Und ich habe nun die Vermutung, dass das Ergebniss zu gross ist (BAAD gefolgt von ca. 19k Nullen) und das deshalb 0 ausgegeben wird.</p>
<p>Liege ich mit der Vermutung richtig oder war das n Schuss ins Blaue ?</p>
<p>mfg<br />
Knacks</p>
<p>edit: auf BAAD gefolgt von 19k Nullen komme ich durch folgende Rechnung:<br />
Um 1 nach links shiften ist wie die Multiplikation mit 2 also 1&lt;&lt;1 == 1*2<br />
und dann wäre das BAAD * 2^FF03 also in Hex ausgedrückt<br />
oder als dezimal: 47789 * 2^65283 = 6,6150765548744654333044097453222e+19656<br />
so sagt der win Taschenrechner das.<br />
Is dieser Rechengang richtig oder ist das auch ein Irrtum ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/219849/frage-zur-shift-operation</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 14:02:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/219849.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 08 Aug 2008 12:55:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zur shift Operation on Fri, 08 Aug 2008 12:59:20 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe folgenden Quelltext von einem Freund bekommen.<br />
Er meinte es kleines &quot;Puzzle&quot;</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void printHex(__int32 num)
{	
	printf(&quot;%X\n&quot;, num);
}

int main()
{                       
	printHex(0xBAAD&lt;&lt;16 + 0xFEED);

	std::cin.get();
	return 0;
}
</code></pre>
<p>Erwartete Ausgabe: BAADFEED<br />
Mein Gnu Compiler sagt mir, dass 0 raus kommt.</p>
<p>Ich bin im Moment an dem Punkt, dass ich weiss das zuerst die Addition stattfindet und dann geshiftet wird.<br />
also das 0xBAAD um 0xFF03 Stellen nach links geshiftet wird.<br />
Und ich habe nun die Vermutung, dass das Ergebniss zu gross ist (BAAD gefolgt von ca. 19k Nullen) und das deshalb 0 ausgegeben wird.</p>
<p>Liege ich mit der Vermutung richtig oder war das n Schuss ins Blaue ?</p>
<p>mfg<br />
Knacks</p>
<p>edit: auf BAAD gefolgt von 19k Nullen komme ich durch folgende Rechnung:<br />
Um 1 nach links shiften ist wie die Multiplikation mit 2 also 1&lt;&lt;1 == 1*2<br />
und dann wäre das BAAD * 2^FF03 also in Hex ausgedrückt<br />
oder als dezimal: 47789 * 2^65283 = 6,6150765548744654333044097453222e+19656<br />
so sagt der win Taschenrechner das.<br />
Is dieser Rechengang richtig oder ist das auch ein Irrtum ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1561446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1561446</guid><dc:creator><![CDATA[Knacks]]></dc:creator><pubDate>Fri, 08 Aug 2008 12:59:20 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur shift Operation on Fri, 08 Aug 2008 13:17:48 GMT]]></title><description><![CDATA[<p><a href="http://www.cppreference.com/operator_precedence.html" rel="nofollow">http://www.cppreference.com/operator_precedence.html</a></p>
<p>Jepp, richtig. + kommt vor &lt;&lt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1561460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1561460</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Fri, 08 Aug 2008 13:17:48 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zur shift Operation on Sun, 10 Aug 2008 13:40:33 GMT]]></title><description><![CDATA[<p>danke mir gings aber hauptsächliche um den rechenweg den ich da zusammen gedichtet hab... ^^ <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/1562238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562238</guid><dc:creator><![CDATA[Knacks]]></dc:creator><pubDate>Sun, 10 Aug 2008 13:40:33 GMT</pubDate></item></channel></rss>