<?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[double (64bit) IEEE-754-1985 übertragen in zwei mal vier Byte]]></title><description><![CDATA[<p>Hallo,</p>
<p>bin mir nicht sicher, ob das hier das richtige Forum ist.<br />
Ich habe ein Protokoll, dass es mir erlaubt maximal 32bit (4 Bytes) in einem Paket auf die Reise zu schicken. Für doubles spezifiert das Protokoll zwei Pakete, in denen ein Double wie folgt zu übertragen ist:</p>
<p>Double: 1 bit sign, 52-bit fraction, 11-bit exponent</p>
<p>Erstes Paket:<br />
Double high: Most signiﬁcant 32 bits of double precision ﬂoating-point value according to IEEE-754-1985</p>
<p>Zweites Paket:<br />
Double low: Least signiﬁcant 32 bits of double precision ﬂoating-point value according to IEEE-754-1985</p>
<p>Ich habe das jetzt folgendermaßen gelöst, dass ich eine union auf einen double und zwei uint32_t mache, den double wert in die union schreibe, anschließend den ersten uint32_t heraushole, htonl() drauf mache, ihn auf die Reise schicke, und anschließend den zweiten.</p>
<p>Auf Empfängerseite mache ich ein ntohl(), schreibe beide in die union und hole einen double wieder raus.</p>
<p>Augenscheinlich funktioniert das, aber ist das<br />
1. legal<br />
2. entspricht das dem Protokoll</p>
<p>Gibts dafür eine elegantere/sichere/portablere Möglichkeit?</p>
<p>Gruß,<br />
Phil</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/240153/double-64bit-ieee-754-1985-übertragen-in-zwei-mal-vier-byte</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 00:16:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/240153.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 02 May 2009 18:10:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to double (64bit) IEEE-754-1985 übertragen in zwei mal vier Byte on Sat, 02 May 2009 18:10:13 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>bin mir nicht sicher, ob das hier das richtige Forum ist.<br />
Ich habe ein Protokoll, dass es mir erlaubt maximal 32bit (4 Bytes) in einem Paket auf die Reise zu schicken. Für doubles spezifiert das Protokoll zwei Pakete, in denen ein Double wie folgt zu übertragen ist:</p>
<p>Double: 1 bit sign, 52-bit fraction, 11-bit exponent</p>
<p>Erstes Paket:<br />
Double high: Most signiﬁcant 32 bits of double precision ﬂoating-point value according to IEEE-754-1985</p>
<p>Zweites Paket:<br />
Double low: Least signiﬁcant 32 bits of double precision ﬂoating-point value according to IEEE-754-1985</p>
<p>Ich habe das jetzt folgendermaßen gelöst, dass ich eine union auf einen double und zwei uint32_t mache, den double wert in die union schreibe, anschließend den ersten uint32_t heraushole, htonl() drauf mache, ihn auf die Reise schicke, und anschließend den zweiten.</p>
<p>Auf Empfängerseite mache ich ein ntohl(), schreibe beide in die union und hole einen double wieder raus.</p>
<p>Augenscheinlich funktioniert das, aber ist das<br />
1. legal<br />
2. entspricht das dem Protokoll</p>
<p>Gibts dafür eine elegantere/sichere/portablere Möglichkeit?</p>
<p>Gruß,<br />
Phil</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1704556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1704556</guid><dc:creator><![CDATA[PhilippM]]></dc:creator><pubDate>Sat, 02 May 2009 18:10:13 GMT</pubDate></item><item><title><![CDATA[Reply to double (64bit) IEEE-754-1985 übertragen in zwei mal vier Byte on Wed, 06 May 2009 15:24:42 GMT]]></title><description><![CDATA[<p>Nanu, kennt denn niemand den IEEE-754 Standard?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1706575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706575</guid><dc:creator><![CDATA[PhilippM]]></dc:creator><pubDate>Wed, 06 May 2009 15:24:42 GMT</pubDate></item><item><title><![CDATA[Reply to double (64bit) IEEE-754-1985 übertragen in zwei mal vier Byte on Wed, 06 May 2009 15:34:21 GMT]]></title><description><![CDATA[<p>Hat mit dem IEEE-754-Standard wenig zu tun, du musst lediglich dafür sorgen, dass die 64 Bit auf dem Zielrechner wieder in der selben Reihenfolge vorliegen. Ich würde mich nicht darauf verlassen, dass der erste 32-Bit-Wert in deiner Union der höherwertige Teil ist. Stattdessen kannst du den double-Wert nach int64_t casten und dir davon den höher-/niederwertigen Teil nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1706587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706587</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Wed, 06 May 2009 15:34:21 GMT</pubDate></item></channel></rss>