<?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[SubByte vergleichen]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe ein Byte[16] und würde gerne prüfen, ob die ersten 3 Byte gleich &quot;sMI&quot; sind. Wie mache ich das? Gibt es sowas wie</p>
<pre><code>// BEGIN PSEUDOCODE
BYTE output[16];
...
if ( output.subByte( 0,3 ) == &quot;sMI&quot; )) ...
// ENDE PSEUDOCODE
</code></pre>
<p>wohl eher nicht, aber wie kann ich das trotzdem lösen?</p>
<p>grüße Nils</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/163486/subbyte-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 03:38:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163486.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 30 Oct 2006 08:14:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SubByte vergleichen on Mon, 30 Oct 2006 08:14:50 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe ein Byte[16] und würde gerne prüfen, ob die ersten 3 Byte gleich &quot;sMI&quot; sind. Wie mache ich das? Gibt es sowas wie</p>
<pre><code>// BEGIN PSEUDOCODE
BYTE output[16];
...
if ( output.subByte( 0,3 ) == &quot;sMI&quot; )) ...
// ENDE PSEUDOCODE
</code></pre>
<p>wohl eher nicht, aber wie kann ich das trotzdem lösen?</p>
<p>grüße Nils</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164246</guid><dc:creator><![CDATA[Nils_Langner]]></dc:creator><pubDate>Mon, 30 Oct 2006 08:14:50 GMT</pubDate></item><item><title><![CDATA[Reply to SubByte vergleichen on Mon, 30 Oct 2006 08:17:40 GMT]]></title><description><![CDATA[<p>Versuch's mal mit memcmp():</p>
<pre><code class="language-cpp">if(memcmp(output,&quot;sMI&quot;,3)==0)
  ...
</code></pre>
<p>(oder noch besser wäre es, du nutzt die Möglichkeiten von C++ - std::string hat eine Methode substr(), um Teile auszuschneiden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164248</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 30 Oct 2006 08:17:40 GMT</pubDate></item><item><title><![CDATA[Reply to SubByte vergleichen on Mon, 30 Oct 2006 08:59:50 GMT]]></title><description><![CDATA[<p>Ok vielen Dank,</p>
<p>aber irgendwie klappt das noch nicht so ganz, liegt aber höchstwahrscheinlich an mir und meinem c++ wissen <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>
<pre><code class="language-cpp">void usbInterface_LPC2148::methodSwitchLEDOn( int LEDNr )
{
	BYTE datagram[16];
	datagram[0] = 0;
	datagram[1] = (int)&quot;s&quot;;
	datagram[2] = (int)&quot;M&quot;;
	datagram[3] = (int)&quot;I&quot;;

	usbInterface::write( datagram );
}
</code></pre>
<p>also so rufe ich meine Funktion auf, jetzt würde ich gerne im write prüfen ob die ersten 4 Zeichen ein 0sMI sind.</p>
<pre><code class="language-cpp">unsigned long usbInterface::write( BYTE* output )
{
	if ( memcmp(output, &quot;0sMI&quot;, 4) == 0 ) 
	{
		return 0;
	}
...
</code></pre>
<p>und so versuch ich das zu prüfen, aber leider gibt er mir nicht 0 zurück, woran kann das denn liegen?</p>
<p>PS: Wenn jemand noch nen Tipp hat, wie ich das zuweisen der Byte s,M,I einfacher machen kann, dann bin ich auch dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164280</guid><dc:creator><![CDATA[Nils_Langner]]></dc:creator><pubDate>Mon, 30 Oct 2006 08:59:50 GMT</pubDate></item><item><title><![CDATA[Reply to SubByte vergleichen on Mon, 30 Oct 2006 09:05:56 GMT]]></title><description><![CDATA[<p>Hm, jetzt müßte man wissen was für ein Typ BYTE ist. Den gibst im Standard nämlich nicht. Ich gehe mal davon aus, daß das ein typedef für ein char ist. In diesem Fall würde die korrekte Belegung der Bytes 1-3 z.B. so aussehen:</p>
<pre><code class="language-cpp">BYTE datagram[16];
    datagram[0] = 0;
    datagram[1] = 's';
    datagram[2] = 'M';
    datagram[3] = 'I';
</code></pre>
<p>Deine Version kann definitv nicht funktionieren (du schreibst Pointer in deine Variablen rein, die dann auch noch auf ein BYTE verkürtzt werden).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164285</guid><dc:creator><![CDATA[Z2]]></dc:creator><pubDate>Mon, 30 Oct 2006 09:05:56 GMT</pubDate></item><item><title><![CDATA[Reply to SubByte vergleichen on Mon, 30 Oct 2006 09:13:08 GMT]]></title><description><![CDATA[<p>Ok, also ein char isses nicht</p>
<pre><code>Error	4	error C2440: '=' : cannot convert from 'const char [2]' to 'BYTE'
</code></pre>
<p>zumindest, wenn ich die Fehlermeldung richtig interpretier. Aber wirklich schlauer bin ich leider immer noch nicht. Aber wieso sagt er const char[2] wo kommt denn die 2 her?</p>
<p>Ein weiterer Fehler müsste doch auch noch in dem Vergleich sein, da müsste ich ja nicht die char 0 reinschreiben, sondern die Byte 0, aber wie mache ich das <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164293</guid><dc:creator><![CDATA[Nils_Langner]]></dc:creator><pubDate>Mon, 30 Oct 2006 09:13:08 GMT</pubDate></item><item><title><![CDATA[Reply to SubByte vergleichen on Mon, 30 Oct 2006 09:19:09 GMT]]></title><description><![CDATA[<p>Lern doch erstmal gescheid C++ bevor du sowas machst... Das ganz muss wie oben bereits gesagt in einfach Anführungszeichen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164298</guid><dc:creator><![CDATA[dgdfgdfgsdfg]]></dc:creator><pubDate>Mon, 30 Oct 2006 09:19:09 GMT</pubDate></item><item><title><![CDATA[Reply to SubByte vergleichen on Mon, 30 Oct 2006 09:26:11 GMT]]></title><description><![CDATA[<p>na danke für deine nette und zuvorkommende art.</p>
<p>ich lass mich aber trotzdem nicht unter kriegen <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="😉"
    /> Wenn ich mir im Speicher jetzt die Adresse auf die der output Zeiger zeigt anschau, dann steht da jetzt .sMI drin, was ja schonmal ganz gut ist <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="🙂"
    /> wie würde ich denn jetzt auf diesen &quot;.&quot; in meinem memcmp vergleichen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164301</guid><dc:creator><![CDATA[Nils_Langner]]></dc:creator><pubDate>Mon, 30 Oct 2006 09:26:11 GMT</pubDate></item><item><title><![CDATA[Reply to SubByte vergleichen on Mon, 30 Oct 2006 09:40:43 GMT]]></title><description><![CDATA[<p>Habs jetzt einfach mal so gemacht und es klappt.</p>
<pre><code class="language-cpp">BYTE method[4];
	method[0] = 0;
	method[1] = 's';
	method[2] = 'M';
	method[3] = 'I';

	if ( memcmp(output, method, 4) == 0 ) 
	{
		return 0;
	}
</code></pre>
<p>ist bestimmt nicht schön, aber reicht für einen der nicht &quot;gescheid&quot; c++ kann <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/1164310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164310</guid><dc:creator><![CDATA[Nils_Langner]]></dc:creator><pubDate>Mon, 30 Oct 2006 09:40:43 GMT</pubDate></item><item><title><![CDATA[Reply to SubByte vergleichen on Mon, 30 Oct 2006 09:48:26 GMT]]></title><description><![CDATA[<p>Du hast als erstes Zeichen in deinem String eine 0 eingetragen, das ist etwas anderes als '0' (das Zeichen hat den ASCII-Wert 48). Um das in den String einzufügen, mußt du Escape-Sequenzen verwenden:</p>
<pre><code class="language-cpp">BYTE datagram[16];
datagram[0] = 0;
datagram[1] = 's';
datagram[2] = 'M';
datagram[3] = 'I'; 

...
if ( memcmp(output, &quot;\0sMI&quot;, 4) == 0 )
  ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1164317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164317</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 30 Oct 2006 09:48:26 GMT</pubDate></item><item><title><![CDATA[Reply to SubByte vergleichen on Mon, 30 Oct 2006 09:54:55 GMT]]></title><description><![CDATA[<p>cool, danke. hat wunderbar geklappt. gibt es noch ne schönere version dem datagramm ne &quot;sMI&quot; an den Anfang zu stellen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164322</guid><dc:creator><![CDATA[Nils_Langner]]></dc:creator><pubDate>Mon, 30 Oct 2006 09:54:55 GMT</pubDate></item><item><title><![CDATA[Reply to SubByte vergleichen on Mon, 30 Oct 2006 10:06:07 GMT]]></title><description><![CDATA[<p>memcpy(), strcpy() und Kollegen. Oder du verwendest std::basic_string&lt;BYTE&gt; - der ist wesentlich einfacher zu handhaben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164333</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 30 Oct 2006 10:06:07 GMT</pubDate></item><item><title><![CDATA[Reply to SubByte vergleichen on Mon, 30 Oct 2006 10:09:59 GMT]]></title><description><![CDATA[<p>String wäre wohl das beste, aber leider muss die Funktion dann auch noch auf einem embedded system unter c funktionieren, aber das geht jetzt so schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164339</guid><dc:creator><![CDATA[Nils_Langner]]></dc:creator><pubDate>Mon, 30 Oct 2006 10:09:59 GMT</pubDate></item><item><title><![CDATA[Reply to SubByte vergleichen on Mon, 30 Oct 2006 10:17:13 GMT]]></title><description><![CDATA[<p>Probier's doch einfach aus. Wenn's nicht geht - schau dir mal <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-163305.html" rel="nofollow">das da</a> an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164344</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 30 Oct 2006 10:17:13 GMT</pubDate></item></channel></rss>