<?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[[Split: uint8_t oder..]Adressierbarkeit und Bytes]]></title><description><![CDATA[<p>Es gibt eben zwei unterschiedliche Bytes. Einerseits &quot;Byte&quot; in seiner technisch korrekten Ursprungsdefinition, als kleinste adressierbare Einheit. Andererseits &quot;Byte&quot; als Synonym für eine 8-Bit-Einheit; im Alltagssprachgebrauch etabliert, weil 8 Bit seit Jahrzehnten auf allen weit verbreiteten Geräten die kleinste adressierbare Einheit ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/331863/split-uint8_t-oder-adressierbarkeit-und-bytes</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 04:00:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/331863.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Mar 2015 19:04:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Mon, 23 Mar 2015 19:04:42 GMT]]></title><description><![CDATA[<p>Es gibt eben zwei unterschiedliche Bytes. Einerseits &quot;Byte&quot; in seiner technisch korrekten Ursprungsdefinition, als kleinste adressierbare Einheit. Andererseits &quot;Byte&quot; als Synonym für eine 8-Bit-Einheit; im Alltagssprachgebrauch etabliert, weil 8 Bit seit Jahrzehnten auf allen weit verbreiteten Geräten die kleinste adressierbare Einheit ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447771</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 23 Mar 2015 19:04:42 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Mon, 23 Mar 2015 21:50:00 GMT]]></title><description><![CDATA[<p>quarkmalwiederleider schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Swordfish schrieb:</p>
<blockquote>
<p>Ein <code>(unsigned) short</code> und ein <code>(unsigned) int</code> ist mindestens 2 Byte lang.<br />
Ein <code>(unsigned) long</code> ist mindestens 4 Bytes lang.<br />
Ein <code>(unsigned) long long</code> ist mindestens 8 Bytes lang.</p>
</blockquote>
<p>Alles falsch.<br />
Wie kommst du auf die Idee?</p>
</blockquote>
<p>Wie kommst du auf die Idee, dass das von Swordfisch falsch sein könnte?</p>
</blockquote>
<p>Weil es eben falsch <em>ist</em>.<br />
Der C++ Standard definiert ein Byte als kleinste (über C++) adressierbare Einheit. Ein C++ Byte muss mindestens 8 Bit haben. Es kann aber z.B. auch 24 Bit haben. Auf solchen Systemen kann dann ohne weiteres gelten <code>sizeof(char)==sizeof(short)==sizeof(int)==1</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447788</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 23 Mar 2015 21:50:00 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Mon, 23 Mar 2015 22:01:56 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Der C++ Standard definiert ein Byte als kleinste (über C++) adressierbare Einheit.</p>
</blockquote>
<p>Das ist jetzt aber auch falsch. Der Standard definiert ein Byte als Einheit, die mindestens den Zeichensatz abspeichern kann und verlangt, dass diese Bytes eindeutig adressierbar sind. Ob die Maschine vielleicht noch kleinere Dinge adressieren kann, ist nicht ausgeschlossen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447794</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 23 Mar 2015 22:01:56 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Mon, 23 Mar 2015 22:14:49 GMT]]></title><description><![CDATA[<p>Ich hab auch extra &quot;kleinste <strong>(über C++)</strong> adressierbare Einheit&quot; geschrieben.</p>
<p>Und etwas kleineres als ein C++ Byte kannst du über ein C++ Programm einfach nicht adressieren.<br />
Falls du meinst das stimme nicht, würde ich gerne wissen wie das gehen soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447798</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 23 Mar 2015 22:14:49 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Mon, 23 Mar 2015 22:19:42 GMT]]></title><description><![CDATA[<pre><code>bool x;
&amp;x;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2447800</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447800</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 23 Mar 2015 22:19:42 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Mon, 23 Mar 2015 23:02:21 GMT]]></title><description><![CDATA[<p>Ein <code>bool</code> ist EDIT: mindestens /EDIT ein Byte gross.<br />
Und jetzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447802</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 23 Mar 2015 23:02:21 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Mon, 23 Mar 2015 22:45:45 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Ein <code>bool</code> ist ein Byte gross.</p>
</blockquote>
<p>Wo steht das im Standard?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447804</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 23 Mar 2015 22:45:45 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Mon, 23 Mar 2015 23:01:56 GMT]]></title><description><![CDATA[<p>Oder mindestens ein Byte gross? Kann sein.<br />
Worum es geht: ein <code>bool</code> kann nicht kleiner als ein Byte sein.</p>
<p>ps:</p>
<p>n3337, 1.8-5 schrieb:</p>
<blockquote>
<p>Unless it is a bit-field (9.6), a most derived object shall have a non-zero size and <strong>shall occupy one or more bytes of storage</strong>. Base class subobjects may have zero size. An object of trivially copyable or standard-layout type (3.9) shall occupy contiguous bytes of storage.</p>
</blockquote>
<p>ps2:<br />
OK, ja, <code>sizeof(bool)</code> ist implementation-defined (siehe z.B. 5.3.3-1). Aber auf jeden Fall eben mindestens 1.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447805</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 23 Mar 2015 23:01:56 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Mon, 23 Mar 2015 23:09:06 GMT]]></title><description><![CDATA[<p>Dann eben meine tolle neue Compilererweiterung __BIT_ADDRESS. Liefert die bit-genaue Adresse eines Bit-Fields. Bloß weil etwas im Standard nicht vorgeschrieben ist, ist es dadurch nicht verboten. Der Standard ist bloß so formuliert, dass er mit Byteadressierung klar kommt, er schreibt sie nicht vor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447808</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 23 Mar 2015 23:09:06 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Mon, 23 Mar 2015 23:17:30 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Dann eben meine tolle neue Compilererweiterung __BIT_ADDRESS. Liefert die bit-genaue Adresse eines Bit-Fields. Bloß weil etwas im Standard nicht vorgeschrieben ist, ist es dadurch nicht verboten.</p>
</blockquote>
<p>ARGH.<br />
Dann eben die &quot;kleinste <strong>(über standard C++)</strong> adressierbare Einheit&quot;.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Der Standard ist bloß so formuliert, dass er mit Byteadressierung klar kommt, er schreibt sie nicht vor.</p>
</blockquote>
<p>Was die Maschine macht ist wurscht, das sollte klar sein.<br />
Ändert aber nichts daran was man mit standard C++ machen kann und was nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447811</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 23 Mar 2015 23:17:30 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Mon, 23 Mar 2015 23:30:10 GMT]]></title><description><![CDATA[<p>Wenn wir es so genau nehmen, wird nirgendwo verlangt, dass das Ergebnis eines Adressoperators 8-Bit aligned ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447817</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 23 Mar 2015 23:30:10 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Mon, 23 Mar 2015 23:39:23 GMT]]></title><description><![CDATA[<p>Worauf willst du hinaus? Verstehe ich gerade nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447819</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 23 Mar 2015 23:39:23 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Tue, 24 Mar 2015 00:20:53 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Worauf willst du hinaus? Verstehe ich gerade nicht.</p>
</blockquote>
<p>Dass der Bitrechner durchaus seine Natur in standardkonformen C++ auch ohne Erweiterungen zeigen kann, selbst wenn der C++-Standard den Adressoperator für alle Objekte &lt; 8 Bit verboten hat.</p>
<p>Und wie fast immer bei solchen Klugscheißerthemen kommt man am Ende beim schwarzen Schaf des Standards an: vector&lt;bool&gt;. Seine Iteratoren dürfen zwar irgendwelche Proxyobjekte sein, aber es wäre auch ein dünner Wrapper um einen bitgenauen Zeiger vorstellbar. Zwar würde man damit nicht direkt ein Bit adressieren im Sinne des Adressoperators, aber man hätte schon irgendwie ein Bit adressiert, in dem Sinne, dass ein Iterator eine Art von Adressierung darstellt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447823</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 24 Mar 2015 00:20:53 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Tue, 24 Mar 2015 00:47:17 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Klugscheißerthemen</p>
</blockquote>
<p>Das Klugscheißerthema hast du doch daraus gemacht, indem du behauptet hast dass ich Unrecht habe.</p>
<p>Ich hab lediglich behauptet dass du in C++ nichts adressieren kannst was kleiner als ein C++ Byte ist.<br />
Das ist so, ganz einfach, weil der Standard dir keine Möglichkeit gibt etwas anderes zu tun.</p>
<p>Hol dir die Adresse von irgend etwas, und du bekommst die Adresse des ersten Bytes dieses Irgendwas. Und das Irgendwas muss eine integrale Anzahl Bytes gross sein. Und was auch immer du mit Zeigerarithmetik machst, so lange du die Regeln nicht verletzt wird dabei auch nie etwas rauskommen was nicht auf ein Byte zeigt.</p>
<p>Von Proxies etc. war auch nie die Rede. Denn über Hilfskonstrukte einzelne Bits aus etwas rauszumaskieren kann man wohl kaum als &quot;adressieren&quot; bezeichnen.</p>
<p>In Hinsicht auf das C++ Memory Model und dessen Relevanz für z.B. Multithreading würde ich das auch nichtmal als Hirnwichserei bezeichnen.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>in dem Sinne, dass ein Iterator eine Art von Adressierung darstellt.</p>
</blockquote>
<p>Jetzt verdrehst du bloss noch Begriffe damit du doch noch Recht haben kannst.</p>
<p>BTW: Das besondere an den <code>vector&lt;bool&gt;</code> Iteratoren ist nicht dass sie Proxy-Objekte sein dürfen, sondern dass das Dereferenzieren so eines Iterators einen Proxy zurückgeben darf.<br />
D.h. wenn du die Verwendung von Iteratoren als adressieren bezeichnen willst, dann adressiert ein <code>vector&lt;bool&gt;</code> Iterator einen Proxy. Und auch dieser kann nicht kleiner als ein Byte sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447826</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 24 Mar 2015 00:47:17 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Tue, 24 Mar 2015 00:54:52 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Klugscheißerthemen</p>
</blockquote>
<p>Das Klugscheißerthema hast du doch daraus gemacht, indem du behauptet hast dass ich Unrecht habe.</p>
<p>Ich hab lediglich behauptet dass du in C++ nichts adressieren kannst was kleiner als ein C++ Byte ist.</p>
</blockquote>
<p>Nein, hast du nicht. Verdreh nicht die Tatsachen, besonders nicht, wenn du mir im gleichen Beitrag Begriffsverdrehung vorwirfst.</p>
<blockquote>
<p>Der C++ Standard definiert ein Byte als kleinste (über C++) adressierbare Einheit.</p>
</blockquote>
<p>Das ist <strong>nicht</strong> die Definition des Standards für Bytes! Bytes haben in C++ nichts mit Adressierung zu tun. Adressierung kommt erst ins Spiel durch den Adressoperator, den der Standard nicht erlaubt für Objekte, die kleiner als ein (C++)-Byte wären<sup>*</sup>. Das ändert nicht die Definition des Byte, sondern die Funktion des Adressoperators.</p>
<p><sup>*</sup>: Außer Objekte der Größe 0, wo er wieder erlaubt ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447827</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 24 Mar 2015 00:54:52 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Tue, 24 Mar 2015 01:06:25 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Klugscheißerthemen</p>
</blockquote>
<p>Das Klugscheißerthema hast du doch daraus gemacht, indem du behauptet hast dass ich Unrecht habe.</p>
<p>Ich hab lediglich behauptet dass du in C++ nichts adressieren kannst was kleiner als ein C++ Byte ist.</p>
</blockquote>
<p>Nein, hast du nicht. Verdreh nicht die Tatsachen</p>
</blockquote>
<p>Du hast Recht.</p>
<p>Ich habe behauptet dass der Standard das Byte als kleinste adressierbare Einheit definiert.</p>
<p>Was streng genommen nicht stimmt. Der Standard definiert das Byte nicht über diese Beschreibung. Er macht aber mMn. eindeutig klar dass es eben so ist, also dass man nichts adressieren kann was kleiner als ein Byte ist.</p>
<p>Wenn du gleich zu Anfang genau das bekrittelt hättest, hätte ich dir vermutlich gleich Recht gegeben.</p>
<p>Hast du aber nicht, du hast versucht den Standpunkt zu vertreten dass man in C++ sehr wohl etwas adressieren kann was kleiner als ein Byte ist. Und das stimmt halt nunmal einfach nicht.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>, besonders nicht, wenn du mir im gleichen Beitrag Begriffsverdrehung vorwirfst.</p>
</blockquote>
<p>Willst du damit behaupten dass der Vorwurf nicht gerechtfertigt wäre?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447828</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 24 Mar 2015 01:06:25 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Tue, 24 Mar 2015 01:36:54 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Klugscheißerthemen</p>
</blockquote>
<p>Das Klugscheißerthema hast du doch daraus gemacht, indem du behauptet hast dass ich Unrecht habe.</p>
<p>Ich hab lediglich behauptet dass du in C++ nichts adressieren kannst was kleiner als ein C++ Byte ist.</p>
</blockquote>
<p>Nein, hast du nicht. Verdreh nicht die Tatsachen</p>
</blockquote>
<p>Du hast Recht.</p>
<p>Ich habe behauptet dass der Standard das Byte als kleinste adressierbare Einheit definiert.</p>
<p>Was streng genommen nicht stimmt. Der Standard definiert das Byte nicht über diese Beschreibung. Er macht aber mMn. eindeutig klar dass es eben so ist, also dass man nichts adressieren kann was kleiner als ein Byte ist.</p>
</blockquote>
<p>Das ist also eindeutig klar, wohingegen doch der Grund, warum du Swordfish nieder gemacht hast war, dass es für den Threadersteller eventuell nicht klar sein könnte, was Swordfish mit Byte gemeint hat?</p>
<blockquote>
<p>Hast du aber nicht, du hast versucht den Standpunkt zu vertreten dass man in C++ sehr wohl etwas adressieren kann was kleiner als ein Byte ist. Und das stimmt halt nunmal einfach nicht.</p>
</blockquote>
<p>In C++ sind Objekte adressierbar, die kleiner als 1 Byte sind. Standardkonformes C++ braucht dies nicht zu unterstützen, aber es ist auch nicht verboten. Prinzipielle Adressierbarkeit von Dingen ist überhaupt kein Thema im Standard, sondern nur das Gegenteil, welche Dinge wie adressierbar sein müssen und welche nicht.</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>, besonders nicht, wenn du mir im gleichen Beitrag Begriffsverdrehung vorwirfst.</p>
</blockquote>
<p>Willst du damit behaupten dass der Vorwurf nicht gerechtfertigt wäre?</p>
</blockquote>
<p>Nein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447829</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 24 Mar 2015 01:36:54 GMT</pubDate></item><item><title><![CDATA[Reply to [Split: uint8_t oder..]Adressierbarkeit und Bytes on Tue, 24 Mar 2015 16:11:50 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>In C++ sind Objekte adressierbar, die kleiner als 1 Byte sind. Standardkonformes C++ braucht dies nicht zu unterstützen (...)</p>
</blockquote>
<p>*schnarch*</p>
<p>OK, lassen wir die Diskussion, die führt zu nix mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2447894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2447894</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 24 Mar 2015 16:11:50 GMT</pubDate></item></channel></rss>