<?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[Short werte aus Array von Bytes lassen sich nicht ablesen oder kasten]]></title><description><![CDATA[<p>Wie soll ich in C++ kasten , so dass ich in den Array von Bytes die 2 -Bytes<br />
Werte (short) ablesen könnte ?</p>
<p>beim</p>
<pre><code>reinterpret_cast&lt;uint16_t *&gt;(...)
</code></pre>
<pre><code>kommt ein Fehlermeldung raus :
error: reinterpret_cast from type ‘const uint8_t* {aka const unsigned char*}’ to type ‘uint16_t* {aka short unsigned int*}’ casts away qualifiers
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/307811/short-werte-aus-array-von-bytes-lassen-sich-nicht-ablesen-oder-kasten</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 09:31:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307811.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Sep 2012 21:16:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Short werte aus Array von Bytes lassen sich nicht ablesen oder kasten on Wed, 05 Sep 2012 21:16:12 GMT]]></title><description><![CDATA[<p>Wie soll ich in C++ kasten , so dass ich in den Array von Bytes die 2 -Bytes<br />
Werte (short) ablesen könnte ?</p>
<p>beim</p>
<pre><code>reinterpret_cast&lt;uint16_t *&gt;(...)
</code></pre>
<pre><code>kommt ein Fehlermeldung raus :
error: reinterpret_cast from type ‘const uint8_t* {aka const unsigned char*}’ to type ‘uint16_t* {aka short unsigned int*}’ casts away qualifiers
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2248876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248876</guid><dc:creator><![CDATA[o4kareg]]></dc:creator><pubDate>Wed, 05 Sep 2012 21:16:12 GMT</pubDate></item><item><title><![CDATA[Reply to Short werte aus Array von Bytes lassen sich nicht ablesen oder kasten on Wed, 05 Sep 2012 21:22:07 GMT]]></title><description><![CDATA[<p>o4kareg schrieb:</p>
<blockquote>
<p>Wie soll ich in C++ kasten , so dass ich in den Array von Bytes die 2 -Bytes<br />
Werte (short) ablesen könnte ?</p>
<p>beim</p>
<pre><code>reinterpret_cast&lt;uint16_t *&gt;(...)
</code></pre>
<pre><code>kommt ein Fehlermeldung raus :
error: reinterpret_cast from type ‘const uint8_t* {aka const unsigned char*}’ to type ‘uint16_t* {aka short unsigned int*}’ casts away qualifiers
</code></pre>
</blockquote>
<p>Öhm.. du darfst in C++ const nicht wegcasten. Außer du verwendest const_cast</p>
<p>EDIT: Und ich glaube nicht das das casten das machst was du dir vorstellst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248878</guid><dc:creator><![CDATA[IrgendeinName]]></dc:creator><pubDate>Wed, 05 Sep 2012 21:22:07 GMT</pubDate></item><item><title><![CDATA[Reply to Short werte aus Array von Bytes lassen sich nicht ablesen oder kasten on Wed, 05 Sep 2012 21:32:52 GMT]]></title><description><![CDATA[<p>Danke, es war voll unklar das das ding wegen Const meckert.</p>
<p>Eine ziemlich korrekte Lösung wäre dann:</p>
<pre><code>const uint16_t * lvl2Num = reinterpret_cast&lt;const uint16_t *&gt; (paket +toLook);
</code></pre>
<p>Omg, es funktioniert, aber dabei werden die bytes umgetausht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Nee, c++ macht doch fertig!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248879</guid><dc:creator><![CDATA[o4kareg]]></dc:creator><pubDate>Wed, 05 Sep 2012 21:32:52 GMT</pubDate></item><item><title><![CDATA[Reply to Short werte aus Array von Bytes lassen sich nicht ablesen oder kasten on Wed, 05 Sep 2012 22:09:27 GMT]]></title><description><![CDATA[<p>Du willst also ein Short in 2 Byte splitten:<br />
Ungefähr so?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

unsigned char extract(unsigned short in, unsigned short lowerBound, unsigned short upperBound)
{
	if (upperBound &gt; 8)
	{
		lowerBound -= 8;
		upperBound -= 8;
		in /= 128;
	}

	unsigned char result = 0;
	for (unsigned char i = 1 &lt;&lt; (upperBound - 1); i &gt;= lowerBound; i &gt;&gt;= 1)
	{
		if (in &amp; i)
			result += i;
	}
	return result;
}

//Testcode
int main()
{
	unsigned short tmp = 4244;
	unsigned char ch1 = extract(tmp,1,8);
	unsigned char ch2 = extract(tmp,9,16);
	std::cout &lt;&lt; static_cast&lt;int&gt;(ch1) &lt;&lt; '\n';
	std::cout &lt;&lt; static_cast&lt;int&gt;(ch2) &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2248889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248889</guid><dc:creator><![CDATA[logoffters]]></dc:creator><pubDate>Wed, 05 Sep 2012 22:09:27 GMT</pubDate></item><item><title><![CDATA[Reply to Short werte aus Array von Bytes lassen sich nicht ablesen oder kasten on Wed, 05 Sep 2012 22:18:25 GMT]]></title><description><![CDATA[<p>logoffters schrieb:</p>
<blockquote>
<p>Du willst also ein Short in 2 Byte splitten:<br />
Ungefähr so?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

unsigned char extract(unsigned short in, unsigned short lowerBound, unsigned short upperBound)
{
	if (upperBound &gt; 8)
	{
		lowerBound -= 8;
		upperBound -= 8;
		in /= 128;
	}

	unsigned char result = 0;
	for (unsigned char i = 1 &lt;&lt; (upperBound - 1); i &gt;= lowerBound; i &gt;&gt;= 1)
	{
		if (in &amp; i)
			result += i;
	}
	return result;
}

//Testcode
int main()
{
	unsigned short tmp = 4244;
	unsigned char ch1 = extract(tmp,1,8);
	unsigned char ch2 = extract(tmp,9,16);
	std::cout &lt;&lt; static_cast&lt;int&gt;(ch1) &lt;&lt; '\n';
	std::cout &lt;&lt; static_cast&lt;int&gt;(ch2) &lt;&lt; '\n';
}
</code></pre>
</blockquote>
<pre><code class="language-cpp">#include &lt;iostream&gt;

unsigned char extract(unsigned short in, unsigned short lowerBound, unsigned short upperBound)
{
	unsigned char result = 0;

	if (upperBound &gt; 8)
		result = in / 256;

	else
	{

	for (unsigned char i = 1 &lt;&lt; (upperBound - 1); i &gt;= lowerBound; i &gt;&gt;= 1)
	{
		if (in &amp; i)
			result += i;
	}
	return result;
	}
}

int main()
{
	unsigned short tmp = 25524;
	unsigned char ch1 = extract(tmp,1,8);
	unsigned char ch2 = extract(tmp,9,16);
	std::cout &lt;&lt; static_cast&lt;int&gt;(ch1) &lt;&lt; '\n';
	std::cout &lt;&lt; static_cast&lt;int&gt;(ch2) &lt;&lt; '\n';
</code></pre>
<p>Wohl eher so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248892</guid><dc:creator><![CDATA[Korrigierer]]></dc:creator><pubDate>Wed, 05 Sep 2012 22:18:25 GMT</pubDate></item><item><title><![CDATA[Reply to Short werte aus Array von Bytes lassen sich nicht ablesen oder kasten on Wed, 05 Sep 2012 22:22:00 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">unsigned char extract(unsigned short in, unsigned short lowerBound, unsigned short upperBound)
{
	unsigned char result = 0;

	if (upperBound &gt; 8)
		result = in / 256;

	else
	{

		for (unsigned char i = 1 &lt;&lt; (upperBound - 1); i &gt;= lowerBound; i &gt;&gt;= 1)
		{
			if (in &amp; i)
				result += i;
		}
	}
	return result;

}
</code></pre>
<p>MIST! Fehler gemacht bei Klammern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248895</guid><dc:creator><![CDATA[Korrigierer]]></dc:creator><pubDate>Wed, 05 Sep 2012 22:22:00 GMT</pubDate></item></channel></rss>