<?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[Byteorder und so...]]></title><description><![CDATA[<p>Hey!</p>
<p>Ich frage mich immer, ob das was ich tue auch plattformunabhängig ist...<br />
Was muss man genau beachten? Wann wird zB. ein Zeiger-cast plattformABhängig?<br />
Sind Bitoperatoren plattformunabhängig? Immer?<br />
Muss man sonst was außer byte-order beachten?</p>
<p>zB.</p>
<pre><code class="language-cpp">unsigned char bytes[] = { 7, 1 };
unsigned short *word = (unsigned short*)&amp;bytes;
</code></pre>
<p>Auf meiner little-endian Maschine ist *word gleich 263. Auf einer big-endian wäre es dann 1793, also wie als ob ich oben mit 1, 7 initialisiert hätte?<br />
Das ist &quot;byte-order&quot;, richtig?</p>
<p>Hab da nie so richtig durchgeblickt...</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/225046/byteorder-und-so</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 18:09:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/225046.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 18 Oct 2008 15:59:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Byteorder und so... on Sat, 18 Oct 2008 15:59:07 GMT]]></title><description><![CDATA[<p>Hey!</p>
<p>Ich frage mich immer, ob das was ich tue auch plattformunabhängig ist...<br />
Was muss man genau beachten? Wann wird zB. ein Zeiger-cast plattformABhängig?<br />
Sind Bitoperatoren plattformunabhängig? Immer?<br />
Muss man sonst was außer byte-order beachten?</p>
<p>zB.</p>
<pre><code class="language-cpp">unsigned char bytes[] = { 7, 1 };
unsigned short *word = (unsigned short*)&amp;bytes;
</code></pre>
<p>Auf meiner little-endian Maschine ist *word gleich 263. Auf einer big-endian wäre es dann 1793, also wie als ob ich oben mit 1, 7 initialisiert hätte?<br />
Das ist &quot;byte-order&quot;, richtig?</p>
<p>Hab da nie so richtig durchgeblickt...</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600869</guid><dc:creator><![CDATA[Unwissender04]]></dc:creator><pubDate>Sat, 18 Oct 2008 15:59:07 GMT</pubDate></item><item><title><![CDATA[Reply to Byteorder und so... on Sat, 18 Oct 2008 16:21:58 GMT]]></title><description><![CDATA[<p>Unwissender04 schrieb:</p>
<blockquote>
<p>Hey!</p>
<p>Ich frage mich immer, ob das was ich tue auch plattformunabhängig ist...<br />
Was muss man genau beachten? Wann wird zB. ein Zeiger-cast plattformABhängig?<br />
Sind Bitoperatoren plattformunabhängig? Immer?<br />
Muss man sonst was außer byte-order beachten?</p>
<p>zB.</p>
<pre><code class="language-cpp">unsigned char bytes[] = { 7, 1 };
unsigned short *word = (unsigned short*)&amp;bytes;
</code></pre>
<p>Auf meiner little-endian Maschine ist *word gleich 263. Auf einer big-endian wäre es dann 1793, also wie als ob ich oben mit 1, 7 initialisiert hätte?<br />
Das ist &quot;byte-order&quot;, richtig?</p>
</blockquote>
<p>Richtig !</p>
<p>Und Bitoperatoren sind plattformunabhängig - Immer!</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600877</guid><dc:creator><![CDATA[freak11]]></dc:creator><pubDate>Sat, 18 Oct 2008 16:21:58 GMT</pubDate></item><item><title><![CDATA[Reply to Byteorder und so... on Sat, 18 Oct 2008 18:38:47 GMT]]></title><description><![CDATA[<p>Aha, und wie macht das zB. das WinAPI?<br />
Da wird doch wildestens rumgecastet, egal welche App immer brauche ich reinterpret_cast und nicht wenige davon...</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600945</guid><dc:creator><![CDATA[Unwissender04]]></dc:creator><pubDate>Sat, 18 Oct 2008 18:38:47 GMT</pubDate></item><item><title><![CDATA[Reply to Byteorder und so... on Mon, 20 Oct 2008 04:07:23 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1601463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1601463</guid><dc:creator><![CDATA[Unwissender04]]></dc:creator><pubDate>Mon, 20 Oct 2008 04:07:23 GMT</pubDate></item><item><title><![CDATA[Reply to Byteorder und so... on Mon, 20 Oct 2008 05:02:17 GMT]]></title><description><![CDATA[<p>Dass du reinterpret_cast brauchst, und vor allem so häufig, deutet eher auf Design-Probleme hin. Davon abgesehen ist die Win-API eben für Windows - und damit ist die Plattformunabhängigkeit ja sowieso schon über den Jordan. Die PC-Systeme auf denen Widows läuft sind allesamt little-endian-Systeme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1601466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1601466</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 20 Oct 2008 05:02:17 GMT</pubDate></item><item><title><![CDATA[Reply to Byteorder und so... on Mon, 20 Oct 2008 06:24:56 GMT]]></title><description><![CDATA[<p>Im WinAPI gehts nunmal oft nicht ohne reinterpret_cast&lt;&gt;... C-Style casts verwende ich natürlich nicht...<br />
Aber dass Windows nur auf little-endian Systemen läuft, wusste ich nicht.</p>
<p>Danke und bin für weitere Hinweise dankbar!<br />
MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1601481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1601481</guid><dc:creator><![CDATA[Unwissender04]]></dc:creator><pubDate>Mon, 20 Oct 2008 06:24:56 GMT</pubDate></item><item><title><![CDATA[Reply to Byteorder und so... on Mon, 20 Oct 2008 11:53:54 GMT]]></title><description><![CDATA[<p>Bei Netzwerkgeschichten kann man auch, wenn man nicht gerade Massendaten verschickt sondern z.B. nur Kontrollparameter/Kommandos, alles über Strings lösen. Die sind ebenfalls Plattformunabhänig.<br />
Es gibt auch noch fortschrittlichere Techniken für die Serialisierung. <code>boost.serialization</code> ist z.B. so eine Technik.<br />
Bei Corba wird IDL benutzt, wo man Schnittstellen in einer plattformunabhängigen Sprache (eben IDL) beschreibt, und man daraus dann jeweils konkreten Code für die jeweilige Plattform erzeugt. IDL lässt sich auch losgelöst von Corba verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1601627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1601627</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Mon, 20 Oct 2008 11:53:54 GMT</pubDate></item><item><title><![CDATA[Reply to Byteorder und so... on Mon, 20 Oct 2008 12:48:20 GMT]]></title><description><![CDATA[<p>Dass man für WinAPI hin und wieder (dauernd ist übertrieben) einen reinterpret_cast braucht liegt wohl daran dass es sich (grösstenteils) um eine reine C-API handelt.</p>
<p>@Unwissender04:<br />
Dein Code hat ein Problem, und zwar dass char und short unterschiedliche Alignment-Anforderungen haben könnten. Es ist nicht garantiert dass du einen char* auf einen short* casten kannst (und den dann dereferenzieren). Umgekehrt schon, also von T* auf char* ist OK.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1601662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1601662</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 20 Oct 2008 12:48:20 GMT</pubDate></item></channel></rss>