<?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[Eine Variable mit 4,5,... bit erstellen ?]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>In meinem Programm bräuchte ich aus Speichergründen einen<br />
Variablen-Typ der nur aus 4 oder zum Beispiel 5 bit besteht<br />
und eine Unterteilung einer großen Variablen in mehrere Bereiche kommt<br />
auch auch Geschwindigkeitsgründen nicht in Frage <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Würde mich sehr über eine Antwort freuen</p>
<p>MfG</p>
<p>der Anonyme n00b</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/122959/eine-variable-mit-4-5-bit-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 09:42:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/122959.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Oct 2005 19:03:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eine Variable mit 4,5,... bit erstellen ? on Tue, 11 Oct 2005 19:03:51 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>In meinem Programm bräuchte ich aus Speichergründen einen<br />
Variablen-Typ der nur aus 4 oder zum Beispiel 5 bit besteht<br />
und eine Unterteilung einer großen Variablen in mehrere Bereiche kommt<br />
auch auch Geschwindigkeitsgründen nicht in Frage <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Würde mich sehr über eine Antwort freuen</p>
<p>MfG</p>
<p>der Anonyme n00b</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889933</guid><dc:creator><![CDATA[Anonymer n00b]]></dc:creator><pubDate>Tue, 11 Oct 2005 19:03:51 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Variable mit 4,5,... bit erstellen ? on Tue, 11 Oct 2005 19:19:42 GMT]]></title><description><![CDATA[<p>iirc:</p>
<pre><code class="language-cpp">struct makeMeSmall
{
    char c : 5; // 5 Bits
    char d : 4; // 4 Bits etc...
};
</code></pre>
<p>Das bringt aber nur beim richtigen Compiler was, da es ansonsten auf jeweils 4 ganze Bytes gepadded wird. also sizeof(makeMeSmall) wäre dann immer noch 4.</p>
<p><a href="http://www.eventhelix.com/RealtimeMantra/ByteAlignmentAndOrdering.htm" rel="nofollow">Byte Padding</a></p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889960</guid><dc:creator><![CDATA[terraner]]></dc:creator><pubDate>Tue, 11 Oct 2005 19:19:42 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Variable mit 4,5,... bit erstellen ? on Tue, 11 Oct 2005 19:20:29 GMT]]></title><description><![CDATA[<p>Du meinst vermutlich so was:</p>
<pre><code class="language-cpp">struct X { 
   int a : 3;
   int b : 4;
   int c : 5;
};
</code></pre>
<p>Das entspricht allerdings einer Unterteilung einer größeren Variable (sizeof(X) ist z.B. unter MinGW 4). Soweit ich weiss, ist es nicht garantiert, wie die Bitfelder gepackt werden.<br />
Egal wie Du Deine Bits speicherst (Du kannst ja alternativ char-Felder nehmen), zum Lesen und Setzen des Wertes sind zusätzliche Ops notwendig. Allerdings ist dafür notwendige Zeit im Allgemeinen vernachlässigbar gegen den Rest einer rechenintensiven Applikation.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889962</guid><dc:creator><![CDATA[niemand]]></dc:creator><pubDate>Tue, 11 Oct 2005 19:20:29 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Variable mit 4,5,... bit erstellen ? on Tue, 11 Oct 2005 19:21:02 GMT]]></title><description><![CDATA[<p>so:</p>
<pre><code class="language-cpp">struct bla
{
  char nur4Bits : 4;
  char nur5Bits : 5;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/889963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889963</guid><dc:creator><![CDATA[User---]]></dc:creator><pubDate>Tue, 11 Oct 2005 19:21:02 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Variable mit 4,5,... bit erstellen ? on Tue, 11 Oct 2005 19:33:35 GMT]]></title><description><![CDATA[<p>Anonymer n00b schrieb:</p>
<blockquote>
<p>und eine Unterteilung einer großen Variablen in mehrere Bereiche kommt<br />
auch auch Geschwindigkeitsgründen nicht in Frage <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>bitfield-verarbeitung u.ä geht aber in der regel langsamer als einfach ein 'int' zu nehmen. rechne mit ints und schieb dir zum schluss die bits zusammen wenn du's so brauchst.<br />
@all: ihr habt das 'unsigned' in euren bitfields vergessen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889974</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Tue, 11 Oct 2005 19:33:35 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Variable mit 4,5,... bit erstellen ? on Tue, 11 Oct 2005 19:39:31 GMT]]></title><description><![CDATA[<p>Wieso unsigned?</p>
<blockquote>
<p>It is implementationdefined whether a plain (neither explicitly signed nor unsigned) char, short, int or long bitfield is signed or unsigned.</p>
</blockquote>
<p>Aus dem C++ Standard 9.6.2</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889988</guid><dc:creator><![CDATA[niemand]]></dc:creator><pubDate>Tue, 11 Oct 2005 19:39:31 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Variable mit 4,5,... bit erstellen ? on Tue, 11 Oct 2005 19:39:31 GMT]]></title><description><![CDATA[<p>Danke für die schnellen Antworten <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>
<p>besonderen Dank an Terraner - ich wurde schon stutzig,<br />
dass das struct trotzdem mindestens 4 Byte und bei 65 Bit auf einmal<br />
8 Byte groß ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/889989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889989</guid><dc:creator><![CDATA[Anonymer n00b]]></dc:creator><pubDate>Tue, 11 Oct 2005 19:39:31 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Variable mit 4,5,... bit erstellen ? on Tue, 11 Oct 2005 19:42:52 GMT]]></title><description><![CDATA[<p>niemand schrieb:</p>
<blockquote>
<p>Wieso unsigned?</p>
<blockquote>
<p>It is implementationdefined whether a plain (neither explicitly signed nor unsigned) char, short, int or long bitfield is signed or unsigned.</p>
</blockquote>
<p>Aus dem C++ Standard 9.6.2</p>
</blockquote>
<p>weil das vor bösen überraschungen schützt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/889996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889996</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Tue, 11 Oct 2005 19:42:52 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Variable mit 4,5,... bit erstellen ? on Tue, 11 Oct 2005 19:43:16 GMT]]></title><description><![CDATA[<p>@ net</p>
<p>also du meinst das ich ein int nehme und dann mit den<br />
operatoren &lt;&lt; und &gt;&gt; die einzelnen Werte &quot;isolieren&quot; ?</p>
<p>Die Idee hatte ich auch schon umgesetzt, aber ich hatte mir<br />
gedacht, dass mehrere 4 Bit Variablen schneller wären <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/889998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/889998</guid><dc:creator><![CDATA[Anomyner n00b]]></dc:creator><pubDate>Tue, 11 Oct 2005 19:43:16 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Variable mit 4,5,... bit erstellen ? on Tue, 11 Oct 2005 19:46:37 GMT]]></title><description><![CDATA[<p>Anomyner n00b schrieb:</p>
<blockquote>
<p>Die Idee hatte ich auch schon umgesetzt, aber ich hatte mir<br />
gedacht, dass mehrere 4 Bit Variablen schneller wären</p>
</blockquote>
<p>sind sie nicht, es sei denn du hast 'ne cpu mit nur 4 datenleitungen. im normalfall werden immer die opranden am schnellsten verarbeitet, die der datenbusbreite entsprechen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890001</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Tue, 11 Oct 2005 19:46:37 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Variable mit 4,5,... bit erstellen ? on Tue, 11 Oct 2005 19:47:58 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3162">@net</a><br />
Böse Überraschung? Wenn es so definiert wäre, dass es immer unsigned ist, ok. Wenn Du aber unsigned hinschreibst, kannst Du trotzdem signed bekommen, oder sehe ich das falsch?</p>
<p>@Anomyner n00b<br />
Der Compiler macht genau dass, was Du mit &lt;&lt; und &gt;&gt; machst. Wer schneller ist, lässt sich nicht so einfach sagen, kannst Du aber nachmessen. Mich würde aber wundern, wenn der Unterschied für eine (normale) Applikation relevant ist.<br />
Am schnellsten ist es übrigens Variablen in der &quot;nativen&quot; Größe der CPU zu nutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890003</guid><dc:creator><![CDATA[niemand]]></dc:creator><pubDate>Tue, 11 Oct 2005 19:47:58 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Variable mit 4,5,... bit erstellen ? on Tue, 11 Oct 2005 19:50:40 GMT]]></title><description><![CDATA[<p>niemand schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3162">@net</a><br />
Böse Überraschung? Wenn es so definiert wäre, dass es immer unsigned ist, ok. Wenn Du aber unsigned hinschreibst, kannst Du trotzdem signed bekommen, oder sehe ich das falsch?</p>
</blockquote>
<p>ich hab jetzt keinen standard zur hand aber ich versteh das so dass wenn kein 'unsigned' da steht, sich der compiler aussuchen kann wie er's macht. ich denke mal nicht dass der ein unsigned einfach so unterschlagen darf</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890007</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Tue, 11 Oct 2005 19:50:40 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Variable mit 4,5,... bit erstellen ? on Tue, 11 Oct 2005 19:55:15 GMT]]></title><description><![CDATA[<p>Uups, ich sollte meine Zitate auch richtig lesen. Da steht &quot;neither explicitly signed or unsigned&quot; - habe &quot;either&quot; gedacht.<br />
Du hast wohl recht, würde das (nach richtigem Hinschauen) genauso verstehen. Also unsigned (bzw. signed, wenn man es denn braucht) mitanzugeben ist dann sicherer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890014</guid><dc:creator><![CDATA[niemand]]></dc:creator><pubDate>Tue, 11 Oct 2005 19:55:15 GMT</pubDate></item></channel></rss>