<?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[einlesen von Dualzahlen]]></title><description><![CDATA[<p>Hallo ich bin neu hier und brauche Hilfe.Ich muss in einer Hausarbeit ein Progamm schreiben welches Dualzahlen in Dezimalzahlen umrechnet. Ich habe Mir überlegt die Dualzahl in einen int einzulesen und die Zahlen dann über eine Schleife in ein Feld einzulese.Leider klappt das nicht so richtig,wenn ich ich zb. 1011 über die Schleife in das Feld einlese kommt 1000000000000000 raus.<br />
Ich bin absoluter Anänger und komm nicht drauf.<br />
Danke im Voraus<br />
#include &lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>int main()<br />
{</p>
<p>long binwert,position=0;<br />
//feld zum speichern ergebnis der modulo operation<br />
long feld[16];<br />
//feld wird mit null besetzt<br />
for (long index=0;index&lt;16;index++)<br />
feld[index]=0;<br />
//einlesen<br />
cout&lt;&lt;&quot;Bitte Dualzahl eingeben&quot;&lt;&lt;endl;<br />
cin&gt;&gt;binwert;<br />
//berechnung modulo<br />
do{<br />
feld[position]=binwert%10;<br />
//nächste position<br />
position++;<br />
//letzte stelle wird gelöscht<br />
binwert=binwert/10;</p>
<p>}while(binwert== 0 &amp;&amp; binwert == 1);<br />
//feld ausgebe<br />
for (int index=0;index&lt;16;index++){<br />
cout&lt;&lt;feld[index];}</p>
<p>//cout&lt;&lt;feld[position]&lt;&lt;endl;</p>
<p>return 0;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/322400/einlesen-von-dualzahlen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 03:57:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322400.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Dec 2013 15:21:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to einlesen von Dualzahlen on Wed, 18 Dec 2013 15:21:16 GMT]]></title><description><![CDATA[<p>Hallo ich bin neu hier und brauche Hilfe.Ich muss in einer Hausarbeit ein Progamm schreiben welches Dualzahlen in Dezimalzahlen umrechnet. Ich habe Mir überlegt die Dualzahl in einen int einzulesen und die Zahlen dann über eine Schleife in ein Feld einzulese.Leider klappt das nicht so richtig,wenn ich ich zb. 1011 über die Schleife in das Feld einlese kommt 1000000000000000 raus.<br />
Ich bin absoluter Anänger und komm nicht drauf.<br />
Danke im Voraus<br />
#include &lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>int main()<br />
{</p>
<p>long binwert,position=0;<br />
//feld zum speichern ergebnis der modulo operation<br />
long feld[16];<br />
//feld wird mit null besetzt<br />
for (long index=0;index&lt;16;index++)<br />
feld[index]=0;<br />
//einlesen<br />
cout&lt;&lt;&quot;Bitte Dualzahl eingeben&quot;&lt;&lt;endl;<br />
cin&gt;&gt;binwert;<br />
//berechnung modulo<br />
do{<br />
feld[position]=binwert%10;<br />
//nächste position<br />
position++;<br />
//letzte stelle wird gelöscht<br />
binwert=binwert/10;</p>
<p>}while(binwert== 0 &amp;&amp; binwert == 1);<br />
//feld ausgebe<br />
for (int index=0;index&lt;16;index++){<br />
cout&lt;&lt;feld[index];}</p>
<p>//cout&lt;&lt;feld[position]&lt;&lt;endl;</p>
<p>return 0;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372657</guid><dc:creator><![CDATA[kite]]></dc:creator><pubDate>Wed, 18 Dec 2013 15:21:16 GMT</pubDate></item><item><title><![CDATA[Reply to einlesen von Dualzahlen on Wed, 18 Dec 2013 15:30:22 GMT]]></title><description><![CDATA[<p>kite schrieb:</p>
<blockquote>
<p>Hallo ich bin neu hier und brauche Hilfe.Ich muss in einer Hausarbeit ein Progamm schreiben welches Dualzahlen in Dezimalzahlen umrechnet. Ich habe Mir überlegt die Dualzahl in einen int einzulesen und die Zahlen dann über eine Schleife in ein Feld einzulese.Leider klappt das nicht so richtig,wenn ich ich zb. 1011 über die Schleife in das Feld einlese kommt 1000000000000000 raus.</p>
</blockquote>
<p>Ich würde sagen, dies ist der falsche Ansatz. Die Dualdarstellung einer Zahl ist eben kein int, sondern eine Zeichenfolge. Das sollte im Programm auch so sein. Hingegen ist das was du am Ende haben möchtest eben keine Zeichenfolge mehr (es sei denn, du wärst wirklich nur an der Dezimaldarstellung interessiert und möchtest nicht damit rechnen) und daher wäre hier ein Integertyp angebracht.</p>
<p>Dein konkreter Fehler hier ist übrigens die Abbruchbedingung der Schleife. Da steht &quot;<strong>solange</strong> wie binwert == 0 <strong>und</strong> binwert == 1 ist&quot;. Das ist logischerweise nie der Fall, daher wird sofort abgebrochen. Auch wenn du das leicht beheben kannst, würde ich trotzdem noch meinen Rat zu den Datentypen berücksichtigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372661</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 18 Dec 2013 15:30:22 GMT</pubDate></item><item><title><![CDATA[Reply to einlesen von Dualzahlen on Thu, 19 Dec 2013 13:18:18 GMT]]></title><description><![CDATA[<p>Hallo erstmal danke für die schnelle Hilfe,habs hin bekommen.Allerdings stellt sich mir schon die nächste Frage.Ich würde gerne die Eingabe überprüfen ob sie mehr als 16 stellen hat.zb<br />
if (binwert&gt;1111111111111111)cout&lt;&lt;falsche Eingabe;<br />
Wenn ich das so schreibe erhalte ich die Fehlermeldung :</p>
<p>error:integer constant is to large for &quot;long&quot; type</p>
<p>Ich habs auch schon mit unsigned long versucht hat aber leider auch nicht geklappt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372815</guid><dc:creator><![CDATA[kite]]></dc:creator><pubDate>Thu, 19 Dec 2013 13:18:18 GMT</pubDate></item><item><title><![CDATA[Reply to einlesen von Dualzahlen on Thu, 19 Dec 2013 14:39:08 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>... dies ist der falsche Ansatz. Die Dualdarstellung einer Zahl ist eben kein int, sondern eine Zeichenfolge. Das sollte im Programm auch so sein.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2372835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372835</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Thu, 19 Dec 2013 14:39:08 GMT</pubDate></item><item><title><![CDATA[Reply to einlesen von Dualzahlen on Thu, 19 Dec 2013 19:27:23 GMT]]></title><description><![CDATA[<p>Hier mal eine straightforward Lösung:</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Die Dualdarstellung einer Zahl ist eben kein int, sondern eine Zeichenfolge.</p>
</blockquote>
<p>Damit haben wir schonmal einen Datentyp, den wir brauchen: std::string.<br />
Jetzt brauchen wir noch was, in das wir den std::string reinstecken können und das mit Bits umgehen kann. Wir durchstöbern also die Container die C++ bietet und finden std::bitset.</p>
<p>Das wars auch schon. Mehr brauchen wird nicht.</p>
<pre><code>#include &lt;bitset&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

int main()
{
	string bits;
	cout &lt;&lt; &quot;Bitfolge: &quot;;
	cin &gt;&gt; bits;

	if( bits.length() &gt; 16 )
	{
		cout &lt;&lt; &quot;Fehler! Maximal 16 Bits!&quot;;
	}
	else
	{
		bitset&lt;16&gt; bits_handle( bits );
		cout &lt;&lt; &quot;Zahl: &quot;;
		cout &lt;&lt; bits_handle.to_ulong();
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2372878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372878</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 19 Dec 2013 19:27:23 GMT</pubDate></item></channel></rss>