<?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[Mathematische Ungenauigkeiten]]></title><description><![CDATA[<p>Hey, ich habe eine kleine Funktion geschrieben um Hex in Dec umzuwandeln.</p>
<pre><code>void hextodec(){
  float result = 0;
  int tmp = 0;
  float dec = 0;
  for(int i = 9; i &gt; 1; i--){
    switch((int)chip[i]){
     case 48: dec = 0; break;
     case 49: dec = 1; break;
     case 50: dec = 2; break;
     case 51: dec = 3; break; 
     case 52: dec = 4; break;
     case 53: dec = 5; break;
     case 54: dec = 6; break;
     case 55: dec = 7; break;
     case 56: dec = 8; break;
     case 57: dec = 9; break;
     case 65: dec = 10; break;
     case 66: dec = 11; break;
     case 67: dec = 12; break;
     case 68: dec = 13; break;
     case 69: dec = 14; break;
     case 70: dec = 15; break;
    }
    result = result+dec*pow(16,tmp);
    tmp++;
  }
  Serial.print(&quot; Dec Notation: &quot;);
  Serial.print(result);
}
</code></pre>
<p>Jedoch bekomme ich ein ungenaues Resultat:<br />
0x001FBB82 = 2079618<br />
Aber ich bekomme:<br />
0x001FBB82 = 2079615.87</p>
<p>Oder<br />
0x0098A42C = 10003500<br />
Mein resultat:<br />
0x0098A42C = 10003488.00</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/327451/mathematische-ungenauigkeiten</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 10:45:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/327451.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Aug 2014 19:36:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mathematische Ungenauigkeiten on Wed, 13 Aug 2014 10:01:48 GMT]]></title><description><![CDATA[<p>Hey, ich habe eine kleine Funktion geschrieben um Hex in Dec umzuwandeln.</p>
<pre><code>void hextodec(){
  float result = 0;
  int tmp = 0;
  float dec = 0;
  for(int i = 9; i &gt; 1; i--){
    switch((int)chip[i]){
     case 48: dec = 0; break;
     case 49: dec = 1; break;
     case 50: dec = 2; break;
     case 51: dec = 3; break; 
     case 52: dec = 4; break;
     case 53: dec = 5; break;
     case 54: dec = 6; break;
     case 55: dec = 7; break;
     case 56: dec = 8; break;
     case 57: dec = 9; break;
     case 65: dec = 10; break;
     case 66: dec = 11; break;
     case 67: dec = 12; break;
     case 68: dec = 13; break;
     case 69: dec = 14; break;
     case 70: dec = 15; break;
    }
    result = result+dec*pow(16,tmp);
    tmp++;
  }
  Serial.print(&quot; Dec Notation: &quot;);
  Serial.print(result);
}
</code></pre>
<p>Jedoch bekomme ich ein ungenaues Resultat:<br />
0x001FBB82 = 2079618<br />
Aber ich bekomme:<br />
0x001FBB82 = 2079615.87</p>
<p>Oder<br />
0x0098A42C = 10003500<br />
Mein resultat:<br />
0x0098A42C = 10003488.00</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2413176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413176</guid><dc:creator><![CDATA[lyinch]]></dc:creator><pubDate>Wed, 13 Aug 2014 10:01:48 GMT</pubDate></item><item><title><![CDATA[Reply to Mathematische Ungenauigkeiten on Tue, 12 Aug 2014 19:59:48 GMT]]></title><description><![CDATA[<p>Warum float und nicht unsigned?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2413177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413177</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 12 Aug 2014 19:59:48 GMT</pubDate></item><item><title><![CDATA[Reply to Mathematische Ungenauigkeiten on Tue, 12 Aug 2014 20:00:44 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Warum float und nicht unsigned?</p>
</blockquote>
<p>Wegen pow.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2413178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413178</guid><dc:creator><![CDATA[iknowtheanswer]]></dc:creator><pubDate>Tue, 12 Aug 2014 20:00:44 GMT</pubDate></item><item><title><![CDATA[Reply to Mathematische Ungenauigkeiten on Tue, 12 Aug 2014 20:00:50 GMT]]></title><description><![CDATA[<p>Warum was eigenes statt Standardlib ?</p>
<pre><code>std::string strHex = &quot;0x001FBB82&quot;;
std::string strDec = std::to_string((long long)std::stoi(strHex,0,16));
</code></pre>
<p>Tadaa. Viel schöner und kürzer, und fehlerfrei. <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2413179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413179</guid><dc:creator><![CDATA[DarkShadow44]]></dc:creator><pubDate>Tue, 12 Aug 2014 20:00:50 GMT</pubDate></item><item><title><![CDATA[Reply to Mathematische Ungenauigkeiten on Tue, 12 Aug 2014 20:05:42 GMT]]></title><description><![CDATA[<p>Warum benutzt du Fließkommazahlen, wenn du mit Ganzzahlen arbeitest?</p>
<p>Außerdem:<br />
-Globale Variablen sind Müll.<br />
-Wenn du die Zeilen 7-22 siehst, kommt dir nicht in den Sinn, dass das auch vielleicht besser ginge?<br />
-Die Aufgabe deiner Funktion ist nicht gut spezifiziert. Warum gibt sie etwas aus? Warum gibt sie nicht stattdessen etwas zurück?<br />
-Eine Hex-Darstellung als Eingabe für die Funktion? Wieso nicht gleich die normalen C++-Eingabefunktionen für Hex-Darstellungen nutzen? Ich hätte eher einen Zahlenwert als Eingabe erwartet (wobei man dann natürlich auch die normalen C++-Ausgabefunktionen benutzen könnte). Reines Lernprojekt? Falls ja, dann ist es um so wichtiger, dass du es auch sauber programmierst.</p>
<p>iknowtheanswer schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>Warum float und nicht unsigned?</p>
</blockquote>
<p>Wegen pow.</p>
</blockquote>
<p>Wenn es doch bloß eine Möglichkeit gäbe, Ganzzahlen zu multiplizieren... <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/2413180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413180</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 12 Aug 2014 20:05:42 GMT</pubDate></item><item><title><![CDATA[Reply to Mathematische Ungenauigkeiten on Tue, 12 Aug 2014 20:16:35 GMT]]></title><description><![CDATA[<p>Vielleicht gefällt es Dir auch, andersrum zu laufen:</p>
<pre><code>void hextodec(){
  unsigned result = 0;
  unsigned dec;
  for(int i = 2; i &lt;=9; i++){
	if(chip[i]&lt;='9')//edit: &gt;='0' muss nicht gestestet werden, da die eingabezahlen 
//festes format haben und keine ungültigen eigbane reinkommen
		dec=chip[i]-'0';
	else
		dec=chip[i]-'A'+10;
    result = result*16+dec;
  }
  Serial.print(&quot; Binary Notation: &quot;);
  Serial.print(result);
}
</code></pre>
<p>da braucht man kein pow() mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2413181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2413181</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 12 Aug 2014 20:16:35 GMT</pubDate></item></channel></rss>