<?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[[C++] Problem mit Binärkonvertierung]]></title><description><![CDATA[<p>Hey Leute, ich bin neu hier auf dem Forum <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="😃"
    /><br />
Ich als C++ Neuling bin (mal wieder) auf ein Problem gestoßen. Ich versuche ein Programm zu schreiben, welches einen text(als string) in einen binären text(als string) umwandelt. Dabei soll es jeden character des strings in eine binäre Zahl des ASCII Codes konvertieren. Hier mein bisheriger Code:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

string char2bin(char c); //Buchstaben in Binäre Zahl als String
string string2bin(string text); //char2bin() für jeden char eines strings
char bin2char(string bin); // binären Character(string) in character (buchstabe)
string bin2string(string s); //Binären Text in normal lesbaren Text

int main()
{

	string text2encode, text2decode;
	cout &lt;&lt; &quot;ENTER TEXT TO ENCODE :&quot;;
	getline(cin, text2encode);
	cout &lt;&lt; endl &lt;&lt; &quot;text2encode : (&quot; &lt;&lt; text2encode &lt;&lt; &quot;)&quot; &lt;&lt; endl;
	cout &lt;&lt; endl &lt;&lt; &quot;ENCODED TEXT: (&quot; &lt;&lt; string2bin(text2encode) &lt;&lt; &quot;)&quot; &lt;&lt; endl;

	while (true)
	{
		cout &lt;&lt; endl &lt;&lt; &quot;ENTER TEXT TO DECODE :&quot;;
		getline(cin, text2decode);
		cout &lt;&lt; endl &lt;&lt; &quot;DECODED TEXT: (&quot; &lt;&lt; bin2string(text2decode) &lt;&lt; &quot;)&quot; &lt;&lt; endl;
	}

	getchar();
	return 0;
}

string char2bin(char c)
{
	string s;
	int x = (int)c;
	int output[8];

	for (int i = 0; i &lt; 8; i++)
	{
		output[i] = x % 2;
		x = x / 2;
	}

	for (int i = 7; i &gt;= 0; i--)
		s += to_string(output[i]);

	return s;
}

string string2bin(string text)
{
	string output;

	for (int i = 0; i &lt; text.length(); i++)
		output += char2bin(text[i]);

	return output;
}

char bin2char(string bin) // e = 01100101 
{
	int result = 0;

	for (int i = bin.length() - 1; i &gt;= 0; i--) //for int i = 7; i &gt;=0; i--)
		result += (int)(bin[i] - '0') * pow(2, bin.length() - 1 - i);

	return (char)result;
}

string bin2string(string bin)
{
	string output;

	for (int i = 0; i &lt; bin.length(); i += 8)
		output += bin2char(bin.substr(i, i + 8));

	return output;
}
</code></pre>
<p>Kopiert mal einfach den Code und führt ihn aus. Das Codieren funktioniert ohne Probleme. Das Decodieren hat Probleme. Beispiel:<br />
Zunächst codiere ich &quot;a &quot;, also ein a und ein leerzeichen.<br />
Ich erhalte: 0110000100100000 folglich für &quot;a&quot;:01100001 und für &quot; &quot;:00100000</p>
<p>Hiermit <a href="http://www.roubaixinteractive.com/PlayGround/Binary_Conversion/Binary_To_Text.asp" rel="nofollow">http://www.roubaixinteractive.com/PlayGround/Binary_Conversion/Binary_To_Text.asp</a> kann man das überprüfen, dass bei der codierung nichts schief gelaufen ist.</p>
<p>So, nun versuchen wir mal verschiedene dinge zu decodieren.<br />
1. &quot;01100001&quot; -&gt; wir erhalten richtigerweise ein &quot;a&quot;<br />
2. &quot;00100000&quot; -&gt; wir erhalten richtigerweise ein &quot; &quot;<br />
3. &quot;0110000100100000&quot; -&gt; wir erhalten richtigerweise &quot;a &quot;<br />
4. &quot;0010000001100001&quot; -&gt; wir erhalten richtigerweise &quot; a&quot;</p>
<p>Versuche ich aber &quot;011000010010000001100001&quot; (= &quot;a a&quot;) zu decodieren erhalte<br />
ich &quot;aaa&quot;. Irgendwie wird aus dem &quot; &quot; das Zeichen was danach folgt. Egal was wir<br />
nach dem Leerzeichen &quot; &quot; setzen, das Leerzeichen wird immer zu dem Zeichen was danach kommt.</p>
<p>&quot;a x&quot; wird zu &quot;axx&quot; usw.</p>
<p>Woran liegt das ? Kann mir da einer helfen? Oder habe ich da nur etwas übersehen ?</p>
<p>Wenn ihr keine Lust habt euch die Funktionen genau anzuschauen könnt ihr mich auch auf skype(sbardila99) adden, und ich erklär euch die ganz bequem.<br />
Danke schonmal im Voraus für eure 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>
]]></description><link>https://www.c-plusplus.net/forum/topic/340020/c-problem-mit-binärkonvertierung</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 12:21:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/340020.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 14 Oct 2016 13:02:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [C++] Problem mit Binärkonvertierung on Fri, 14 Oct 2016 13:02:21 GMT]]></title><description><![CDATA[<p>Hey Leute, ich bin neu hier auf dem Forum <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="😃"
    /><br />
Ich als C++ Neuling bin (mal wieder) auf ein Problem gestoßen. Ich versuche ein Programm zu schreiben, welches einen text(als string) in einen binären text(als string) umwandelt. Dabei soll es jeden character des strings in eine binäre Zahl des ASCII Codes konvertieren. Hier mein bisheriger Code:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

string char2bin(char c); //Buchstaben in Binäre Zahl als String
string string2bin(string text); //char2bin() für jeden char eines strings
char bin2char(string bin); // binären Character(string) in character (buchstabe)
string bin2string(string s); //Binären Text in normal lesbaren Text

int main()
{

	string text2encode, text2decode;
	cout &lt;&lt; &quot;ENTER TEXT TO ENCODE :&quot;;
	getline(cin, text2encode);
	cout &lt;&lt; endl &lt;&lt; &quot;text2encode : (&quot; &lt;&lt; text2encode &lt;&lt; &quot;)&quot; &lt;&lt; endl;
	cout &lt;&lt; endl &lt;&lt; &quot;ENCODED TEXT: (&quot; &lt;&lt; string2bin(text2encode) &lt;&lt; &quot;)&quot; &lt;&lt; endl;

	while (true)
	{
		cout &lt;&lt; endl &lt;&lt; &quot;ENTER TEXT TO DECODE :&quot;;
		getline(cin, text2decode);
		cout &lt;&lt; endl &lt;&lt; &quot;DECODED TEXT: (&quot; &lt;&lt; bin2string(text2decode) &lt;&lt; &quot;)&quot; &lt;&lt; endl;
	}

	getchar();
	return 0;
}

string char2bin(char c)
{
	string s;
	int x = (int)c;
	int output[8];

	for (int i = 0; i &lt; 8; i++)
	{
		output[i] = x % 2;
		x = x / 2;
	}

	for (int i = 7; i &gt;= 0; i--)
		s += to_string(output[i]);

	return s;
}

string string2bin(string text)
{
	string output;

	for (int i = 0; i &lt; text.length(); i++)
		output += char2bin(text[i]);

	return output;
}

char bin2char(string bin) // e = 01100101 
{
	int result = 0;

	for (int i = bin.length() - 1; i &gt;= 0; i--) //for int i = 7; i &gt;=0; i--)
		result += (int)(bin[i] - '0') * pow(2, bin.length() - 1 - i);

	return (char)result;
}

string bin2string(string bin)
{
	string output;

	for (int i = 0; i &lt; bin.length(); i += 8)
		output += bin2char(bin.substr(i, i + 8));

	return output;
}
</code></pre>
<p>Kopiert mal einfach den Code und führt ihn aus. Das Codieren funktioniert ohne Probleme. Das Decodieren hat Probleme. Beispiel:<br />
Zunächst codiere ich &quot;a &quot;, also ein a und ein leerzeichen.<br />
Ich erhalte: 0110000100100000 folglich für &quot;a&quot;:01100001 und für &quot; &quot;:00100000</p>
<p>Hiermit <a href="http://www.roubaixinteractive.com/PlayGround/Binary_Conversion/Binary_To_Text.asp" rel="nofollow">http://www.roubaixinteractive.com/PlayGround/Binary_Conversion/Binary_To_Text.asp</a> kann man das überprüfen, dass bei der codierung nichts schief gelaufen ist.</p>
<p>So, nun versuchen wir mal verschiedene dinge zu decodieren.<br />
1. &quot;01100001&quot; -&gt; wir erhalten richtigerweise ein &quot;a&quot;<br />
2. &quot;00100000&quot; -&gt; wir erhalten richtigerweise ein &quot; &quot;<br />
3. &quot;0110000100100000&quot; -&gt; wir erhalten richtigerweise &quot;a &quot;<br />
4. &quot;0010000001100001&quot; -&gt; wir erhalten richtigerweise &quot; a&quot;</p>
<p>Versuche ich aber &quot;011000010010000001100001&quot; (= &quot;a a&quot;) zu decodieren erhalte<br />
ich &quot;aaa&quot;. Irgendwie wird aus dem &quot; &quot; das Zeichen was danach folgt. Egal was wir<br />
nach dem Leerzeichen &quot; &quot; setzen, das Leerzeichen wird immer zu dem Zeichen was danach kommt.</p>
<p>&quot;a x&quot; wird zu &quot;axx&quot; usw.</p>
<p>Woran liegt das ? Kann mir da einer helfen? Oder habe ich da nur etwas übersehen ?</p>
<p>Wenn ihr keine Lust habt euch die Funktionen genau anzuschauen könnt ihr mich auch auf skype(sbardila99) adden, und ich erklär euch die ganz bequem.<br />
Danke schonmal im Voraus für eure 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>
]]></description><link>https://www.c-plusplus.net/forum/post/2511547</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511547</guid><dc:creator><![CDATA[Sbardila]]></dc:creator><pubDate>Fri, 14 Oct 2016 13:02:21 GMT</pubDate></item><item><title><![CDATA[Reply to [C++] Problem mit Binärkonvertierung on Fri, 14 Oct 2016 13:24:52 GMT]]></title><description><![CDATA[<p>Was möchte substr als Argument haben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511551</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 14 Oct 2016 13:24:52 GMT</pubDate></item><item><title><![CDATA[Reply to [C++] Problem mit Binärkonvertierung on Fri, 14 Oct 2016 16:50:17 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Was möchte substr als Argument haben?</p>
</blockquote>
<p>substr() nimmt einen teil eines strings, es braucht 2 Argumente:</p>
<p>1. Von wo soll der string beginnen (einschließlich des arguments)<br />
2. Wo soll der string enden (ausschließlich des arguments)</p>
<p>Beispiel: Ich habe einen String mystring = &quot;0123456789&quot;</p>
<p>wenn ich nur die zahlen 4567 haben möchte mache ich folgendes.</p>
<pre><code>string mysubstring = mystring.substr(4,8);
</code></pre>
<p>die 4 wird noch mit in den string genommen, die 8 nicht mehr sondern nur das was davor kommt.</p>
<p>Hoffe das war das was du gemeint hast</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511577</guid><dc:creator><![CDATA[Sbardila]]></dc:creator><pubDate>Fri, 14 Oct 2016 16:50:17 GMT</pubDate></item><item><title><![CDATA[Reply to [C++] Problem mit Binärkonvertierung on Fri, 14 Oct 2016 17:06:03 GMT]]></title><description><![CDATA[<p>Sbardila schrieb:</p>
<blockquote>
<p>Hoffe das war das was du gemeint hast</p>
</blockquote>
<p>Nun, ich habe gemeint, dass du deine Annahme überprüfen solltest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2511579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511579</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 14 Oct 2016 17:06:03 GMT</pubDate></item><item><title><![CDATA[Reply to [C++] Problem mit Binärkonvertierung on Fri, 14 Oct 2016 18:23:53 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Sbardila schrieb:</p>
<blockquote>
<p>Hoffe das war das was du gemeint hast</p>
</blockquote>
<p>Nun, ich habe gemeint, dass du deine Annahme überprüfen solltest.</p>
</blockquote>
<p>Oh xD danke <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="😃"
    /> das hat mir grad auch n Kollege auf skype gesagt <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="😛"
    /> Der 2. parameter ist ja die länge ._. vielen vielen dank für deine hilfe ! <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/2511586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2511586</guid><dc:creator><![CDATA[Sbardila]]></dc:creator><pubDate>Fri, 14 Oct 2016 18:23:53 GMT</pubDate></item></channel></rss>