<?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[Einmal von char nach int und wieder zurück]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe da eine Frage, und zwar:</p>
<p>Ich habe zwei integer-Variablen x und y, welche die Koordinaten eines Onjektes sind. Damit ich die Koordinaten verarbeiten kann, brauch ich sie in einem Char-Array: char koordinaten[2]. koordinaten[0] soll hierbei den Wert von x und koordinaten[1] den Wert von y enthalten. Später muss ich das dann wieder zurückkonvertieren, also aus koordinaten[0] muss x werden und aus koordinaten[1] muss y werden. Meine Versuche sind bis jetzt alle gescheitert, weiß jemand zuverlässig, wie ich das bewerkstelligen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/248263/einmal-von-char-nach-int-und-wieder-zurück</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 05:17:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/248263.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 22 Aug 2009 12:21:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 12:21:22 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe da eine Frage, und zwar:</p>
<p>Ich habe zwei integer-Variablen x und y, welche die Koordinaten eines Onjektes sind. Damit ich die Koordinaten verarbeiten kann, brauch ich sie in einem Char-Array: char koordinaten[2]. koordinaten[0] soll hierbei den Wert von x und koordinaten[1] den Wert von y enthalten. Später muss ich das dann wieder zurückkonvertieren, also aus koordinaten[0] muss x werden und aus koordinaten[1] muss y werden. Meine Versuche sind bis jetzt alle gescheitert, weiß jemand zuverlässig, wie ich das bewerkstelligen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764792</guid><dc:creator><![CDATA[intTochar]]></dc:creator><pubDate>Sat, 22 Aug 2009 12:21:22 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 12:52:36 GMT]]></title><description><![CDATA[<p>Wobei hast du denn ein Problem, etwa bei der Konvertierung von char -&gt; int -&gt; char ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764810</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Sat, 22 Aug 2009 12:52:36 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 12:52:53 GMT]]></title><description><![CDATA[<p>Meinst du vielleicht eher &quot;String-Array&quot;? In einen Char passen nur Zahlen von 0-256 bzw -128 bis 127, könnte also knapp werden mit deinen Koordinaten.<br />
Für die Konvertierung siehe in der <a href="http://www.c-plusplus.net/forum/viewforum.php?f=25" rel="nofollow">FAQ</a> den Eintrag &quot;Einmal Zahl und zurück&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764811</guid><dc:creator><![CDATA[Badestrand_off]]></dc:creator><pubDate>Sat, 22 Aug 2009 12:52:53 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 12:56:23 GMT]]></title><description><![CDATA[<p>Naja, man kann schon die Grenze überschreiten, sollte man aber nicht machen, da sowieso nur Datenmüll etc. entsteht und wirres Zeug.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764814</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Sat, 22 Aug 2009 12:56:23 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 14:18:55 GMT]]></title><description><![CDATA[<p>Zum beispiel hab ich den x-Wert 870 und den y-Wert 220. Der x Wert soll in das erste Element vom char-Array und der y-Wert in das zweite Element. Später muss ich die Werte wieder zurück in int's konvertieren:</p>
<pre><code class="language-cpp">char koordinaten[2];

int x = 870;
int y = 220;

koordinaten[0] = char(x);
koordinaten[1] = char(y);

...

int x = int(koordinaten[0]);
int y = int(korrdinaten[1]);
</code></pre>
<p>So hatte das leider nicht funktioniert gehabt. Weiß jemand wie ich das besser machen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764872</guid><dc:creator><![CDATA[intTochar]]></dc:creator><pubDate>Sat, 22 Aug 2009 14:18:55 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 14:29:21 GMT]]></title><description><![CDATA[<p>Es geht nicht. Ein <code>char</code> ist auf gängigen Plattformen kleiner als ein <code>int</code> . Auf deinem System ist char vermutlich 1 Byte und int 4 Byte. Du kannst also die Informationen in dem int nicht in ein char quetschen. So wie du es zeigst macht es auch gar keinen Sinn. Vielleicht willst du die ints in Strings umwandeln. Da musst du aber anders vorgehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764880</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Sat, 22 Aug 2009 14:29:21 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 14:29:32 GMT]]></title><description><![CDATA[<p>Ein <code>char</code> hat auf einem x86 System genau ein Byte. Die meisten Kompiler verwenden zudem per Standard <code>signed char</code> . Wodurch der maximalste positive Wert 127 ist. Fällt dir was auf? <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>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764881</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 22 Aug 2009 14:29:32 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 14:37:23 GMT]]></title><description><![CDATA[<p>Das Problem ist die Byteanzahl. Den Inhalt der Variable kannste einfach per ::memcpy( ) rüberkopieren. Vielleicht meinst du ja sogar so:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int main( )
{
	unsigned int x, y;
	x = 870;
	y = 220;

	unsigned char buffer[2];

	///// char to int /////
	buffer[0] = x;
	buffer[1] = y;

	///// int to char /////
	::memcpy( &amp;x, &amp;buffer[0], sizeof( unsigned char ) );
	::memcpy( &amp;y, &amp;buffer[1], sizeof( unsigned char ) );

	std::cin.get( );
}
</code></pre>
<p>EDIT:<br />
Siehe Vorredner.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764887</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sat, 22 Aug 2009 14:37:23 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 14:40:38 GMT]]></title><description><![CDATA[<p>Was soll das <code>memcpy()</code> bringen? Inwiefern ist es besser als eine Zuweisung?</p>
<p>Davon abgesehen löst es das Problem des Informationsverlusts in keinster Weise.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764893</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 22 Aug 2009 14:40:38 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 14:53:58 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Was soll das <code>memcpy()</code> bringen? Inwiefern ist es besser als eine Zuweisung?</p>
<p>Davon abgesehen löst es das Problem des Informationsverlusts in keinster Weise.</p>
</blockquote>
<p>Aber es ging ihm doch um die Konvertierung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764907</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sat, 22 Aug 2009 14:53:58 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 14:54:24 GMT]]></title><description><![CDATA[<p>Okok, die Idee von mir war dumm. Hintergrund ist, dass ich die Koordinaten über die WinSockets verschicken will und da fand ich die Idee von mir durchaus komfortabel, da man nur char-Arrays senden kann. Hat jemad vllt. eine gute Idee, wie ich die Koordinaten einfach verpackt in ein char-Array bekomme, sodass es mir später nicht all zu schwer fallen wird, das ganze wieder in zwei integer aufzusplitten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764908</guid><dc:creator><![CDATA[intTochar]]></dc:creator><pubDate>Sat, 22 Aug 2009 14:54:24 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 14:55:43 GMT]]></title><description><![CDATA[<p>Kóyaánasqatsi schrieb:</p>
<blockquote>
<p>Aber es ging ihm doch um die Konvertierung?</p>
</blockquote>
<p>Und dafür braucht man ja unbedingt <code>memcpy()</code> , weil man jedes Mal einige Bits des <code>int</code> erhalten möchte, oder? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764909</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 22 Aug 2009 14:55:43 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 14:58:13 GMT]]></title><description><![CDATA[<p>intTochar schrieb:</p>
<blockquote>
<p>Hat jemad vllt. eine gute Idee, wie ich die Koordinaten einfach verpackt in ein char-Array bekomme, sodass es mir später nicht all zu schwer fallen wird, das ganze wieder in zwei integer aufzusplitten?</p>
</blockquote>
<p>Zum Beispiel:</p>
<pre><code class="language-cpp">int FirstInt;
int SecondInt;

char TwoInts[2*sizeof(int)];

reinterpret_cast&lt;int&amp;&gt;(TwoInts[0]) = FirstInt;
reinterpret_cast&lt;int&amp;&gt;(TwoInts[sizeof(int)]) = SecondInt;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1764914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764914</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 22 Aug 2009 14:58:13 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 15:03:11 GMT]]></title><description><![CDATA[<p>intTochar schrieb:</p>
<blockquote>
<p>Okok, die Idee von mir war dumm. Hintergrund ist, dass ich die Koordinaten über die WinSockets verschicken will und da fand ich die Idee von mir durchaus komfortabel, da man nur char-Arrays senden kann. Hat jemad vllt. eine gute Idee, wie ich die Koordinaten einfach verpackt in ein char-Array bekomme, sodass es mir später nicht all zu schwer fallen wird, das ganze wieder in zwei integer aufzusplitten?</p>
</blockquote>
<p>Du kannst über Sockets alle Daten schicken, die du magst. Das ist nicht auf char-Arrays beschränkt.</p>
<pre><code class="language-cpp">int koordinaten[2];
// ...
send(sockHandle, reinterpret_cast&lt;char *&gt;(koordinaten), 2 * sizeof(int), flags);
// ...
</code></pre>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764917</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Sat, 22 Aug 2009 15:03:11 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 15:03:25 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Kóyaánasqatsi schrieb:</p>
<blockquote>
<p>Aber es ging ihm doch um die Konvertierung?</p>
</blockquote>
<p>Und dafür braucht man ja unbedingt <code>memcpy()</code> , weil man jedes Mal einige Bits des <code>int</code> erhalten möchte, oder? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Nein, natürlich nicht. War doch nur eine Idee.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764918</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sat, 22 Aug 2009 15:03:25 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 15:15:16 GMT]]></title><description><![CDATA[<p>DStefan schrieb:</p>
<blockquote>
<p>Du kannst über Sockets alle Daten schicken, die du magst. Das ist nicht auf char-Arrays beschränkt.</p>
<pre><code class="language-cpp">int koordinaten[2];
// ...
send(sockHandle, reinterpret_cast&lt;char *&gt;(koordinaten), 2 * sizeof(int), flags);
// ...
</code></pre>
<p>Stefan.</p>
</blockquote>
<p>Kann ich die daten dann auch genauso empfangen?<br />
[/cpp]<br />
int buf[2];<br />
rv = recv( connectedSocket, reinterpret_cast&lt;char <em>&gt;( buf ), 2</em>sizeof( int ), 0 );<br />
buf[rv] = 0;<br />
int X = buf[0];<br />
int Y = buf[1];<br />
[cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764928</guid><dc:creator><![CDATA[intTochar]]></dc:creator><pubDate>Sat, 22 Aug 2009 15:15:16 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 15:18:41 GMT]]></title><description><![CDATA[<p>intTochar schrieb:</p>
<blockquote>
<p>Kann ich die daten dann auch genauso empfangen?</p>
</blockquote>
<p>Sofern du garantieren kannst, dass auf dem System, auf welchem du empfängst, die Bytereihenfolge gleich ist, ja.</p>
<p>Du musst übrigens nicht mal über ein Array gehen sowas geht auch:</p>
<pre><code class="language-cpp">int x, y;
recv(connectedSocket, reinterpret_cast&lt;char*&gt;(&amp;x), sizeof(int), 0);
recv(connectedSocket, reinterpret_cast&lt;char*&gt;(&amp;y), sizeof(int), 0);
</code></pre>
<p>Gleiches gilt natürlich auch für das Senden.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764930</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 22 Aug 2009 15:18:41 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 15:18:26 GMT]]></title><description><![CDATA[<p>Kóyaánasqatsi schrieb:</p>
<blockquote>
<p>Nein, natürlich nicht. War doch nur eine Idee.</p>
</blockquote>
<p>Ja, aber eine unnötig komplizierte. Noch dazu kann es wie gesagt passieren, dass irgendein Müll als <code>int</code> rauskommt, weil nicht alle Bits überschrieben werden. Konvertieren kann man mittels Cast-Operatoren.</p>
<p>intTochar schrieb:</p>
<blockquote>
<p>Kann ich die daten dann auch genauso empfangen?</p>
</blockquote>
<p>Sollte so gehen, allerdings müsstest du dann wieder zu <code>int</code> reinterpret_casten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764931</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 22 Aug 2009 15:18:26 GMT</pubDate></item><item><title><![CDATA[Reply to Einmal von char nach int und wieder zurück on Sat, 22 Aug 2009 16:53:18 GMT]]></title><description><![CDATA[<p>Das sieht alles, ehrlich gesagt, ganz schön nach Pfusch. Ich hoffe doch, es ist im Sinne des OPs, dass sich zwei Rechner unterhalten können, auch wenn sie <code>int</code> s anders im Speicher ablegen oder sogar unterschiedliche Wertebereiche abdecken können.</p>
<p>Das, was zunächst mal geklärt werden sollte, ist die <em>Kodierung</em> (&quot;Encoding&quot;).</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764978</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Sat, 22 Aug 2009 16:53:18 GMT</pubDate></item></channel></rss>