<?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[(unsigned) char als Zahl]]></title><description><![CDATA[<p>Hallo auch,</p>
<p>ich habe mal <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="😉"
    /> den dumme Frage.</p>
<p>Eine Programm überträgt auf der seriellen Schnittstelle eine 16bit lange Zahl in 2 Zeichen. Die zu übertragende Zahl ist 15bit (0...14) + 1bit(15) für das Vorzeichen.<br />
Das höchste bit ist also das Vorzeichen.</p>
<p>Wie wandele ich sowas am schlauesten in einen Integer?</p>
<p>Momentan (falsch)</p>
<p>Es gibt einen string<br />
string[0] //Bits 8 bis 15<br />
string[1] //Bits 0 bis 7</p>
<p>int i = singed char(string[0])*256+unsigned char(string[1])</p>
<p>Warum geht das nicht richtig; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145345/unsigned-char-als-zahl</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 00:46:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145345.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 27 Apr 2006 07:43:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to (unsigned) char als Zahl on Thu, 27 Apr 2006 07:43:53 GMT]]></title><description><![CDATA[<p>Hallo auch,</p>
<p>ich habe mal <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="😉"
    /> den dumme Frage.</p>
<p>Eine Programm überträgt auf der seriellen Schnittstelle eine 16bit lange Zahl in 2 Zeichen. Die zu übertragende Zahl ist 15bit (0...14) + 1bit(15) für das Vorzeichen.<br />
Das höchste bit ist also das Vorzeichen.</p>
<p>Wie wandele ich sowas am schlauesten in einen Integer?</p>
<p>Momentan (falsch)</p>
<p>Es gibt einen string<br />
string[0] //Bits 8 bis 15<br />
string[1] //Bits 0 bis 7</p>
<p>int i = singed char(string[0])*256+unsigned char(string[1])</p>
<p>Warum geht das nicht richtig; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1046151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046151</guid><dc:creator><![CDATA[Dippl Insch]]></dc:creator><pubDate>Thu, 27 Apr 2006 07:43:53 GMT</pubDate></item><item><title><![CDATA[Reply to (unsigned) char als Zahl on Thu, 27 Apr 2006 07:57:34 GMT]]></title><description><![CDATA[<p>Dein Problem ist, daß negative Zahlen üblicherweise im Zweierkomplement dargestellt werden - und indem du das untere Bit der Zahl als unsigned char interpretierst, zerlegst du die Hälfte der Komplement-Darstellung.</p>
<p>Als Lösung könntest du den String zunächst (ohne Rücksicht auf das Vorzeichen) in einen unsigned short packen und den nach int konvertieren. Oder du verwendest Bit-Operatoren (short x=(s[0]&lt;&lt;8)|s[1]).</p>
<p>(btw, ein int besteht afair aus 4 Byte)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1046156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046156</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 27 Apr 2006 07:57:34 GMT</pubDate></item><item><title><![CDATA[Reply to (unsigned) char als Zahl on Thu, 27 Apr 2006 08:05:46 GMT]]></title><description><![CDATA[<p>Aber das sign-Bit sollte er doch schon erstmal ausmaskieren und das Ergebnis dann mit (-1) multiplizieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1046162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046162</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 27 Apr 2006 08:05:46 GMT</pubDate></item><item><title><![CDATA[Reply to (unsigned) char als Zahl on Thu, 27 Apr 2006 09:03:34 GMT]]></title><description><![CDATA[<p>Dippl Insch schrieb:</p>
<blockquote>
<p>Wie wandele ich sowas am schlauesten in einen Integer?</p>
</blockquote>
<p>1. sende das 15-bit wort als 2 bytes.<br />
2. beim empfänger schiebst du es zusammen (ergibt ein 16-bit wort)<br />
3. kopiere bit 14 des 16-bit worts nach bit 15.<br />
4. setze bit 14 auf 0</p>
<p>weiss nicht ob das am schlauesten ist, aber sollte funzen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1046192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1046192</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Thu, 27 Apr 2006 09:03:34 GMT</pubDate></item></channel></rss>