<?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[Ausgabe von Bitmustern]]></title><description><![CDATA[<p>Hay<br />
programmiere erst seit kurzem C++ und hab ne frage zu nem Code. Das Buch aus dem ich lern, erklärt diesen leider nich =/.</p>
<pre><code class="language-cpp">using namespace std;  

void anzeige(void* n, int gr)  //klar
{

     char* p;                 //char pointer p...wg 1 byte
     int i,j;
     p = (char*)n;           //Ab hier..(einschließlich der Zeile)
     p+=gr-1;                //versteh ichs nich

     for(i = 1; i&lt;=gr; i++) //was die forschliefe macht.. is klar.. aber warum?
     {
           for(j = 128; j&gt;=1; j/=2) // hier das gleiche.. warum?
           {
                 if(j &amp; *p)  // verstehe die Bedingung nicht: j verknüpfe *p?
                 cout &lt;&lt; &quot;1&quot;;
                 else
                 cout &lt;&lt; &quot;0&quot;;
           }
           p--;                  //zwar klar.. aber wie immer.. warum?
           cout &lt;&lt; &quot; &quot;;
     }

}
</code></pre>
<p>Die zu übergebenden Parameter werden dann von main übergeben..<br />
Aber ich versteh beim besten Willen nich was in void anzeige() abläuft..<br />
Hoffe jemand kann mir das erklären.</p>
<p>Mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/221088/ausgabe-von-bitmustern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 15:45:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/221088.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Aug 2008 13:15:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ausgabe von Bitmustern on Mon, 25 Aug 2008 13:15:25 GMT]]></title><description><![CDATA[<p>Hay<br />
programmiere erst seit kurzem C++ und hab ne frage zu nem Code. Das Buch aus dem ich lern, erklärt diesen leider nich =/.</p>
<pre><code class="language-cpp">using namespace std;  

void anzeige(void* n, int gr)  //klar
{

     char* p;                 //char pointer p...wg 1 byte
     int i,j;
     p = (char*)n;           //Ab hier..(einschließlich der Zeile)
     p+=gr-1;                //versteh ichs nich

     for(i = 1; i&lt;=gr; i++) //was die forschliefe macht.. is klar.. aber warum?
     {
           for(j = 128; j&gt;=1; j/=2) // hier das gleiche.. warum?
           {
                 if(j &amp; *p)  // verstehe die Bedingung nicht: j verknüpfe *p?
                 cout &lt;&lt; &quot;1&quot;;
                 else
                 cout &lt;&lt; &quot;0&quot;;
           }
           p--;                  //zwar klar.. aber wie immer.. warum?
           cout &lt;&lt; &quot; &quot;;
     }

}
</code></pre>
<p>Die zu übergebenden Parameter werden dann von main übergeben..<br />
Aber ich versteh beim besten Willen nich was in void anzeige() abläuft..<br />
Hoffe jemand kann mir das erklären.</p>
<p>Mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1571073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1571073</guid><dc:creator><![CDATA[Undefined_cl]]></dc:creator><pubDate>Mon, 25 Aug 2008 13:15:25 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe von Bitmustern on Mon, 25 Aug 2008 13:30:13 GMT]]></title><description><![CDATA[<p>Es wird ein Zeiger auf einen Speicherbereich von <code>gr</code> Bytes übergeben.<br />
In Zeile 8 wird ein Zeiger auf ein <code>char</code> (= 1 byte) geholt und zwar auf das letzte vom übergebenen Speicherbereich (zeile 9).<br />
Die erste Schleife iteriert dann byteweise über den Speicherbereich (Zeile 20 geht zum nächst höheren Byte).<br />
Die zweite Schleife macht nichts weiter als einzelne Bits zu prüfen:<br />
128 ist nur das msb gesetzt, teilen durch zwei wandert das bit weiter, bis zum LSB.<br />
Zeile 15 prüft ob das jeweilige Bit, dass in <code>j</code> gesetzt ist auch in dem Byte gesetzt ist, auf das <code>p</code> zeigt (daher <code>*p</code> ).</p>
<p>Damit lassen sich Zahlen bitweise ausgeben. Zumindest auf Little-Endian Systemen (was aber wohl für viele zutreffen dürfte...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1571087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1571087</guid><dc:creator><![CDATA[lagalopex]]></dc:creator><pubDate>Mon, 25 Aug 2008 13:30:13 GMT</pubDate></item><item><title><![CDATA[Reply to Ausgabe von Bitmustern on Mon, 25 Aug 2008 13:30:55 GMT]]></title><description><![CDATA[<p>jetzt wirds klar <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>danke für die schnelle antwort</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1571089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1571089</guid><dc:creator><![CDATA[Undefined_cl]]></dc:creator><pubDate>Mon, 25 Aug 2008 13:30:55 GMT</pubDate></item></channel></rss>