<?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[175 Bit Feld auslesen und manipulieren]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe gerade ein kleines Problem was ich nicht lösen kann. Und zwar bekomme ich über einen Socket Daten geschickt die 248 Bit lang sind. Mitten in diesen Bits befinden sich zwei jeweils 111Bit große Teilstücke. Genau diese muss ich auslesen und später mit anderen Daten XORen.</p>
<p>Also das sieht so aus:</p>
<pre><code>13 Bits | 111Bits  | 10Bits    | 111Bits  | 3Bit
unwichtig| auslesen | unwichtig | auslesen | Padding
</code></pre>
<p>Die 2x 111Bits brauche ich um diese dann später mit 222 zusammenhängenden Bits zur XORen und wieder in Daten gesplittet einzufügen.</p>
<p>Ich versteh nur nicht wie ich an die Daten rankomme. Vor allem weil die Daten auch noch über Bytegrenzen hinweg gehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Ich dachte erst ein ein Struct mit Bitfeldern, aber das geht ja irgendwie auch nicht. Ich kann mir ja ein struct machen mit 248 bool-Variablen.... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
Achja... dann gibt es ja wohl noch dieses Big- Little-Endian problem, weil die Daten über UDP gekommen sind. Und wie soll später das XORen funktioniern, bei 222Bit breiten Daten.</p>
<p>Ich seh da momentan keine einfache Möglichkeit. Ihr eventuell?</p>
<p>Über hilfreiche Tips wäre ich äußerst dankbar!</p>
<p>Gruß<br />
Thorsten</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/232880/175-bit-feld-auslesen-und-manipulieren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 04:40:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/232880.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Jan 2009 12:39:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 175 Bit Feld auslesen und manipulieren on Wed, 28 Jan 2009 12:39:47 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe gerade ein kleines Problem was ich nicht lösen kann. Und zwar bekomme ich über einen Socket Daten geschickt die 248 Bit lang sind. Mitten in diesen Bits befinden sich zwei jeweils 111Bit große Teilstücke. Genau diese muss ich auslesen und später mit anderen Daten XORen.</p>
<p>Also das sieht so aus:</p>
<pre><code>13 Bits | 111Bits  | 10Bits    | 111Bits  | 3Bit
unwichtig| auslesen | unwichtig | auslesen | Padding
</code></pre>
<p>Die 2x 111Bits brauche ich um diese dann später mit 222 zusammenhängenden Bits zur XORen und wieder in Daten gesplittet einzufügen.</p>
<p>Ich versteh nur nicht wie ich an die Daten rankomme. Vor allem weil die Daten auch noch über Bytegrenzen hinweg gehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Ich dachte erst ein ein Struct mit Bitfeldern, aber das geht ja irgendwie auch nicht. Ich kann mir ja ein struct machen mit 248 bool-Variablen.... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
Achja... dann gibt es ja wohl noch dieses Big- Little-Endian problem, weil die Daten über UDP gekommen sind. Und wie soll später das XORen funktioniern, bei 222Bit breiten Daten.</p>
<p>Ich seh da momentan keine einfache Möglichkeit. Ihr eventuell?</p>
<p>Über hilfreiche Tips wäre ich äußerst dankbar!</p>
<p>Gruß<br />
Thorsten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1653806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1653806</guid><dc:creator><![CDATA[Ikarisan]]></dc:creator><pubDate>Wed, 28 Jan 2009 12:39:47 GMT</pubDate></item><item><title><![CDATA[Reply to 175 Bit Feld auslesen und manipulieren on Wed, 28 Jan 2009 12:40:42 GMT]]></title><description><![CDATA[<p>Die Überschrift ist falsch... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1653807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1653807</guid><dc:creator><![CDATA[Ikarisan]]></dc:creator><pubDate>Wed, 28 Jan 2009 12:40:42 GMT</pubDate></item><item><title><![CDATA[Reply to 175 Bit Feld auslesen und manipulieren on Wed, 28 Jan 2009 12:49:02 GMT]]></title><description><![CDATA[<p>wenn unsigned char bei dir 8 bits groß ist (ist bei heutigen pcs üblicherweise so), lies die daten in einen std::vector&lt;char&gt;(31). da passen exakt 8 * 31 = 248 bits rein.</p>
<p>auf einzelne bits greifst du dann mit den boolschen operatoren zu, also and, or, xor. um die oberen 3 bits aus einem octet &quot;auszublenden&quot;, machst du <code>v = octet &amp; 31</code> .</p>
<p>wahrscheinlich gehts noch einfacher mit std::bitset oder std::vector&lt;bool&gt;, damit kenne ich mich aber nicht so gut aus.</p>
<p>Ikarisan schrieb:</p>
<blockquote>
<p>dann gibt es ja wohl noch dieses Big- Little-Endian problem</p>
</blockquote>
<p>hä? bei bits gibt es keine endianess, die gibts nur bei datentypen die größer als 1 byte sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1653812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1653812</guid><dc:creator><![CDATA[bitfiedel]]></dc:creator><pubDate>Wed, 28 Jan 2009 12:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to 175 Bit Feld auslesen und manipulieren on Wed, 28 Jan 2009 13:22:32 GMT]]></title><description><![CDATA[<p>Da man sich bei 222 Byte nicht wirklich um Platzbedarf Gedanken machen muss, würde ich einfach den vector&lt;bool&gt; nehmen. In einer Schleife die Bits aus den Bytes in den vector transferieren und schon kannst du bequem drauf arbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1653830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1653830</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 28 Jan 2009 13:22:32 GMT</pubDate></item></channel></rss>