<?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[Arbeiten mit char arrays - BIN &amp;gt; DEZ Umwandler]]></title><description><![CDATA[<p>Hi Leute, ich hab den ganzen Abend dran gesessen, nun gebe ich es auf.</p>
<p>ich bastle ein Programm zum Umwandeln vom binären zum dezimalen Zahlensystem. So sieht es bis jetzt aus:</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
  #include &lt;string.h&gt;
  #include &lt;iostream.h&gt;
  #include &lt;conio.h&gt;
  #include &lt;math.h&gt;

  int main ()
  {
  int x,y=0,z,dez=0;

  char bin[100]=&quot;1011&quot;;        //Binärzahl in einzelne Arrays packen
  x=strlen(bin)-1;             //Zähler zum Wiederholen des nächsten Schrittes

   while (x&gt;=0)                //solange x größer gleich 0, dann if aufrufen
    if (bin[x]=1)             //wenn die Zahl 1 ist, bearbeiten
    {
     z=pow(2,y);               //2^y
     x--;
     y++;
     dez=dez+z;                //Rechenschritt dem Gesamtergebnis aufaddieren
     cout&lt;&lt;dez&lt;&lt;endl;          //Ausgabe (noch in der Schleife um einzelne Schritte verfolgen zu können)
    }   

getch ();
}
</code></pre>
<p><strong>Ausgabe:</strong></p>
<pre><code>1
3
7
15
</code></pre>
<p>Im Prinzip läuft es gar nicht schlecht, nur dass der die 0 mitrechnet (bin[1]), trotz der Bedingung &quot;if (bin[x]=1)&quot;.</p>
<p>Oder hab ich da allgemein nen Denkfehler?</p>
<p>Danke für eure Zeit!<br />
Sandro</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/231584/arbeiten-mit-char-arrays-bin-gt-dez-umwandler</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 19:59:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/231584.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Jan 2009 22:18:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Arbeiten mit char arrays - BIN &amp;gt; DEZ Umwandler on Mon, 12 Jan 2009 22:18:43 GMT]]></title><description><![CDATA[<p>Hi Leute, ich hab den ganzen Abend dran gesessen, nun gebe ich es auf.</p>
<p>ich bastle ein Programm zum Umwandeln vom binären zum dezimalen Zahlensystem. So sieht es bis jetzt aus:</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
  #include &lt;string.h&gt;
  #include &lt;iostream.h&gt;
  #include &lt;conio.h&gt;
  #include &lt;math.h&gt;

  int main ()
  {
  int x,y=0,z,dez=0;

  char bin[100]=&quot;1011&quot;;        //Binärzahl in einzelne Arrays packen
  x=strlen(bin)-1;             //Zähler zum Wiederholen des nächsten Schrittes

   while (x&gt;=0)                //solange x größer gleich 0, dann if aufrufen
    if (bin[x]=1)             //wenn die Zahl 1 ist, bearbeiten
    {
     z=pow(2,y);               //2^y
     x--;
     y++;
     dez=dez+z;                //Rechenschritt dem Gesamtergebnis aufaddieren
     cout&lt;&lt;dez&lt;&lt;endl;          //Ausgabe (noch in der Schleife um einzelne Schritte verfolgen zu können)
    }   

getch ();
}
</code></pre>
<p><strong>Ausgabe:</strong></p>
<pre><code>1
3
7
15
</code></pre>
<p>Im Prinzip läuft es gar nicht schlecht, nur dass der die 0 mitrechnet (bin[1]), trotz der Bedingung &quot;if (bin[x]=1)&quot;.</p>
<p>Oder hab ich da allgemein nen Denkfehler?</p>
<p>Danke für eure Zeit!<br />
Sandro</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1644211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1644211</guid><dc:creator><![CDATA[Sandro L.]]></dc:creator><pubDate>Mon, 12 Jan 2009 22:18:43 GMT</pubDate></item><item><title><![CDATA[Reply to Arbeiten mit char arrays - BIN &amp;gt; DEZ Umwandler on Mon, 12 Jan 2009 22:22:19 GMT]]></title><description><![CDATA[<p>Schau mal hier im Forum, wenn dich Alternativen interessieren.<br />
Hatten wir auch schon ein paar mal.</p>
<p>Wenns läuft ists ja sicher nicht schlecht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1644217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1644217</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 12 Jan 2009 22:22:19 GMT</pubDate></item><item><title><![CDATA[Reply to Arbeiten mit char arrays - BIN &amp;gt; DEZ Umwandler on Mon, 12 Jan 2009 22:23:12 GMT]]></title><description><![CDATA[<p>In C++ ist der Gleichheitsoperator <code>==</code> und nicht <code>=</code> .</p>
<p>Vielleicht wäre es einfacher, <code>std::string</code> statt der <code>char</code> -Arrays zu verwenden. Denn was machst du, wenn du plötzlich eine Binärzahl mit 100 Stellen (Bits) haben willst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1644218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1644218</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 12 Jan 2009 22:23:12 GMT</pubDate></item><item><title><![CDATA[Reply to Arbeiten mit char arrays - BIN &amp;gt; DEZ Umwandler on Tue, 13 Jan 2009 16:03:31 GMT]]></title><description><![CDATA[<p>wow ihr beiden habt ja genau gleich viele Beiträge <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12954">@Nexus</a>: du meinst sicherlich in Zeile 15 oder? Ich war mir nicht ganz sicher, und als ich es getestet habe kam nur mit einem Gleichheitszeichen etwas vernünftiges dabei heraus.</p>
<p>Aber irgendwie ist es irre seltsam, denn eigentlich ist ja &quot;bin[0]=1&quot; und &quot;bin[1]=0&quot; (weil bin=1011). Aber wenn ich es probehalber einfach mal in ne andere Variable kopiere, sieht es so aus:</p>
<pre><code class="language-cpp">int x,y=0,z,dez=0,test,test2;

  char bin[100]=&quot;1011&quot;;        //Binärzahl in einzelne Arrays packen
  x=strlen(bin)-1;             //Zähler zum Wiederholen des nächsten Schrittes

  test=bin[0];
  test2=bin[1];
  cout&lt;&lt;bin[0]&lt;&lt;&quot;  -  &quot;&lt;&lt;bin[1]&lt;&lt;endl;
  cout&lt;&lt;test&lt;&lt;&quot;  -  &quot;&lt;&lt;test2;
  /*
</code></pre>
<p>Ausgabe:</p>
<pre><code>1 - 0
49 - 48
</code></pre>
<p>Obwohl beides gleich sein sollte. Oder arbeite ich von Grund auf falsch damit?</p>
<p>---</p>
<p>Wie arbeite ich denn mit std::string? Denn so einfach scheint das laut Google nciht zu sein...</p>
<p>Danke!</p>
<p>Ach und Drakon: sicherlich kann ich mir andere Möglichkeiten ansehen, aber es gibt da nen gewissen Ehrgeiz, es selber zu schaffen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> außerdem lerne ich so besser <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1644665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1644665</guid><dc:creator><![CDATA[Sandro L.]]></dc:creator><pubDate>Tue, 13 Jan 2009 16:03:31 GMT</pubDate></item><item><title><![CDATA[Reply to Arbeiten mit char arrays - BIN &amp;gt; DEZ Umwandler on Tue, 13 Jan 2009 18:45:40 GMT]]></title><description><![CDATA[<p>Nexus hat etwas anderes gemeint. Der =-Operator heisst Zuweisung. Der == - Operator heisst auf Gleichheit prüfen und gibt <em>true</em> bei Gleichheit zurück und <em>false</em> bei Ungleichheiht.</p>
<p>Sprich das hier:</p>
<pre><code class="language-cpp">if (bin[x]=1)
</code></pre>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox13841" checked="true" /><label for="checkbox13841">eins ist das und das machen, sondern:</label></div><br />
<div class="plugin-markdown"><input type="checkbox" id="checkbox13840" checked="true" /><label for="checkbox13840">wird 1 zugewiesen und dann der Wert von bin[x] als boolscher Wert angeschaut und somit ist es immer true. (weil bin[x] ja vorher eins zugewiesen wurde).</label></div><br />
Du willst offensitlich das hier:</p>
<pre><code class="language-cpp">if (bin[x] == 1)
</code></pre>
<p>Bei deinem Beispiel ist das &quot;Problem&quot;, dass du zuerst die 1, respektive 0 als char Werte anschaust, was bei ASCII der Zahl 48/49 entspricht. Bei der Zuweisung an einen Integer wird das automatisch in diese 48/49 umgewandelt und somit hast du &quot;unterschiedliche&quot; Ausgaben.</p>
<p>Das du das selbst machen willst, finde ich gut. Mach nur.<br />
Teste aber dann auch gut. z.B Minuswerte sind speziell. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>EDIT:<br />
std::string kannst du hier anschauen:<br />
<a href="http://www.cplusplus.com/reference/string/" rel="nofollow">http://www.cplusplus.com/reference/string/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1644802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1644802</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 13 Jan 2009 18:45:40 GMT</pubDate></item><item><title><![CDATA[Reply to Arbeiten mit char arrays - BIN &amp;gt; DEZ Umwandler on Tue, 13 Jan 2009 19:04:06 GMT]]></title><description><![CDATA[<p>Aye!<br />
Einfach an der richtigen Stelle ein &quot;-48&quot; einbringen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1644823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1644823</guid><dc:creator><![CDATA[Sandro L.]]></dc:creator><pubDate>Tue, 13 Jan 2009 19:04:06 GMT</pubDate></item><item><title><![CDATA[Reply to Arbeiten mit char arrays - BIN &amp;gt; DEZ Umwandler on Tue, 13 Jan 2009 19:11:16 GMT]]></title><description><![CDATA[<p>Sandro L. schrieb:</p>
<blockquote>
<p>Aye!<br />
Einfach an der richtigen Stelle ein &quot;-48&quot; einbringen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Danke!</p>
</blockquote>
<p>Aber hast du verstanden, was wir dir mit dem =/== - Operator gesagt haben?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1644830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1644830</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 13 Jan 2009 19:11:16 GMT</pubDate></item><item><title><![CDATA[Reply to Arbeiten mit char arrays - BIN &amp;gt; DEZ Umwandler on Tue, 13 Jan 2009 20:39:38 GMT]]></title><description><![CDATA[<p>Japp. Das wusste ich auch eigentlich schwach, nur hab ichs anders gemacht weil so nichts funktioniert hat. Das lag aber an falschen if/else/for-Verschachtelungen. Müsste jetzt passen. hier mein Meisterwerk:</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;conio.h&gt;
#include &lt;math.h&gt;

int main ()
 {
  int x,y=0,temp=0,dez=0,intb[255];
  char bin[255];                                                 ////Variable &quot;bin&quot; wird als char deklariert, 
                                                                 //sodass jeder Charakter einzeln angesprochen 
                                                                 //werden kann  

  for ( ;x==x; )                                                 ////Endlosschleife
  { 
   cout&lt;&lt;&quot;&gt;&gt;BIN -&gt; DEZ&lt;&lt;&quot;&lt;&lt;endl&lt;&lt;endl;                           ////Eingabe
   cout&lt;&lt;&quot;Bitte umzuwandelnde Zahl eingeben&quot;&lt;&lt;endl;              //         
   cin&gt;&gt;bin;                                                     //   
   cout&lt;&lt;endl;                                                   //   

   for (x=0;x&lt;=255;x++)                                          ////Konvertierung von Char zu Int, weil man 
     intb[x]=bin[x]-48;                                          //mit &quot;Buchstaben&quot; nicht rechnen kann
                                                                 //Zahl 0 hat ASCII-Code 30H, deswegen (- 48)

   x=strlen(bin)-1;                                              ////Zähler zum Wiederholen des nächsten Schrittes
                                                                 //strlen: Anzahl Charaktere eines Strings

   for ( ;x&gt;=0;x--)                                              ////Rechnung
     if (intb[x]==1)                                             //Wenn 1,
       {                                                         //Dann:
         temp=pow(2,y);                                          //- 2^y in temporäre Variable speichern
         y++;                                                    //- y erhöhen
         dez=dez+temp;                                           //- Temporäres Ergebnis dem Gesamtergebnis addieren
       }                                                         //
     else                                                        //Sonst:
         y++;                                                    //- y erhöhen

   cout&lt;&lt;&quot;Das Ergebnis lautet: &quot;&lt;&lt;dez&lt;&lt;endl;                     ////Ausgabe
   getch ();
   system(&quot;cls&quot;);                                                ////Wiederholen
   dez=y=0;                                                      //Variablen zurücksetzen
  }
 }
</code></pre>
<p>Noch schön viele Kommentare damit ich als Newbie nicht den Überblick verliere...^^</p>
<p>Vielen Dank für Alles! Ich mach dann mal weiter mit hexdez.cpp <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1644896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1644896</guid><dc:creator><![CDATA[Sandro L.]]></dc:creator><pubDate>Tue, 13 Jan 2009 20:39:38 GMT</pubDate></item></channel></rss>