<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[SDS PLC/PAC: Měření Energie & OnlineTechnology.cz - [vyřešeno] Špatné vyhodnocení podmínky if]]></title>
		<link>https://forum.sds.an-d.cz/viewtopic.php?id=1024</link>
		<atom:link href="https://forum.sds.an-d.cz/extern.php?action=feed&amp;tid=1024&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Nejnovější příspěvky v [vyřešeno] Špatné vyhodnocení podmínky if.]]></description>
		<lastBuildDate>Fri, 26 Mar 2021 09:51:11 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: [vyřešeno] Špatné vyhodnocení podmínky if]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=7030#p7030</link>
			<description><![CDATA[<p>Díky za rychlou úpravu, vyzkouším a otestuju. <br />Ty 64bit jsou v pohodě, návod na wiki je dostatečný...</p>]]></description>
			<author><![CDATA[null@example.com (dockys)]]></author>
			<pubDate>Fri, 26 Mar 2021 09:51:11 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=7030#p7030</guid>
		</item>
		<item>
			<title><![CDATA[Re: [vyřešeno] Špatné vyhodnocení podmínky if]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=7029#p7029</link>
			<description><![CDATA[<p>Vyzkoušejte nový firmware, je to tam vyřešené.</p><p>Chybně se to uvnitř převádělo, v některých případech, na signed int a pak ty podmínky měly špatný výsledek. <br />Nalezeno, opraveno, otestováno.</p><p>Pozor však nenachytejte se na použití if pro signed/unsigned, tam se to podle C standardu musí vždy převést obojí na unsigned !<br />Pokud chcete porovnávat jeden z parametrů který je signed, musíte pro správné provedení mít i všechny ostatní proměnné co tam vstupují jako signed. <br />Ale toto je jen poznámka na okraj, původní nahlášená chyba s if byla skutečná, a je opravena.</p><p>Poznámky k 64bit proměnným viz wiki, tam změna není.</p>]]></description>
			<author><![CDATA[null@example.com (adamn)]]></author>
			<pubDate>Fri, 26 Mar 2021 08:15:18 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=7029#p7029</guid>
		</item>
		<item>
			<title><![CDATA[Re: [vyřešeno] Špatné vyhodnocení podmínky if]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=7026#p7026</link>
			<description><![CDATA[<div class="quotebox"><cite>adamn napsal:</cite><blockquote><p>ano tohle vypadá že už je chybné <br />(navíc teď je ten 64bit mimo hru)</p></blockquote></div><p>Ano, momentálně se jedná o &quot;unisgned int&quot;. 64bit mě nefungoval také, ale ten problém byl jinde - viz. odkaz na wiki.</p>]]></description>
			<author><![CDATA[null@example.com (dockys)]]></author>
			<pubDate>Thu, 25 Mar 2021 08:40:03 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=7026#p7026</guid>
		</item>
		<item>
			<title><![CDATA[Re: [vyřešeno] Špatné vyhodnocení podmínky if]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=7025#p7025</link>
			<description><![CDATA[<p>ano tohle vypadá že už je chybné <br />(navíc teď je ten 64bit mimo hru)</p><p>zejména když<br /></p><div class="codebox"><pre><code>printf(&quot;x=%x y=%x %u&quot;, x, y, (x&gt;y));</code></pre></div><p>dá<br /></p><div class="codebox"><pre><code>x=fffffffe y=1388 0</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (adamn)]]></author>
			<pubDate>Thu, 25 Mar 2021 08:38:18 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=7025#p7025</guid>
		</item>
		<item>
			<title><![CDATA[Re: [vyřešeno] Špatné vyhodnocení podmínky if]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=7024#p7024</link>
			<description><![CDATA[<p>A tohle?</p><div class="codebox"><pre><code>void main(void) {
    unsigned int x, y;

    x = 2147483647;
    y = 5000;
    
    printf(&quot;x=%u|%d, y=%un&quot;, x, x, y);
    
    x = x *2;
    printf(&quot;x=%u|%d, y=%un&quot;, x, x, y);
    
    if(x &gt; y) {
        printf(&quot;OK&quot;);    
    } else {
        printf(&quot;Tady by to nemelo dojit!!&quot;);        
    }
}</code></pre></div><p>Výstup je:<br /></p><div class="codebox"><pre><code>x=2147483647|2147483647, y=5000
x=4294967294|-2, y=5000
Tady by to nemelo dojit!!</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (dockys)]]></author>
			<pubDate>Thu, 25 Mar 2021 08:35:31 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=7024#p7024</guid>
		</item>
		<item>
			<title><![CDATA[Re: [vyřešeno] Špatné vyhodnocení podmínky if]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=7023#p7023</link>
			<description><![CDATA[<div class="codebox"><pre><code>void main(void) 
{
    uint64_t x, y;

    // zadávat lze jen 32bit konstanty (x = konst), ale pak už pro práci s (u)int64 jiná omezení nejsou. Takže:
    unsigned int xx;
    xx = 4294907296; // samozřejmě max 32bit - pokud to má být více je postup složitější viz wiki
    x = xx;

    y = 5000;

    printf(&quot;x=%u y=%un&quot;,x,y);

    if(x &gt; y)
    {
        printf(&quot;OK&quot;);
    } else 
    {
        printf(&quot;Tady by to nemelo dojit!!&quot;);
    }
}</code></pre></div><br /><p>viz: http://wiki.merenienergie.cz/index.php/FULL-C_64bit (zejména poslední část na konci)</p>]]></description>
			<author><![CDATA[null@example.com (adamn)]]></author>
			<pubDate>Thu, 25 Mar 2021 08:33:23 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=7023#p7023</guid>
		</item>
		<item>
			<title><![CDATA[[vyřešeno] Špatné vyhodnocení podmínky if]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=7021#p7021</link>
			<description><![CDATA[<p>Podmínka vyhodnotí správně jen hodnotu do velikosti &quot;signed int&quot;. Při použití proměnné &quot;unsigned int&quot; nebo &quot;uint64_t &quot; a vložení vyšší hodnoty čísla to vyhodnotí špatně. Je to vlastnost FULL-C ?</p><div class="codebox"><pre><code>void main(void) {
    uint64_t x, y;

    x = 4294907296;
    y = 5000;
    
    if(x &gt; y) {
        printf(&quot;OK&quot;);    
    } else {
        printf(&quot;Tady by to nemelo dojit!!&quot;);        
    }
}</code></pre></div><p>Výstupem je text &quot;Tady by to nemelo dojit!!&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (dockys)]]></author>
			<pubDate>Wed, 24 Mar 2021 16:17:22 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=7021#p7021</guid>
		</item>
	</channel>
</rss>
