浮點數網路傳輸

2022-02-10 02:47:32 字數 782 閱讀 5923

作業系統 : centos7.3.1611_x64

gcc版本 :4.8.5

python 版本 : 2.7.5

思路如下 :

1、將浮點數a通過記憶體拷貝,賦值給相同位元組的整型資料b;

2、將b轉換為網路位元組序變數c併發送到服務端;

3、服務端接收c並將c轉換為主機位元組序變數d;

4、將整型資料d通過記憶體拷貝,賦值給相同位元組的浮點資料e;

至此,浮點數網路傳輸完成。

c示例**:

#define htonl64 htobe64

#define ntohl64 be64tohuint64_t htonf64(

double

dvalue)

double

ntohf64(uint64_t ulvalue)

完整示例**如下:

python示例** :

def

htonfl(f):

s = struct.pack('d'

,f)

return struct.unpack('!q'

,s)[0]

deffltonl(v):

s = struct.pack('!q'

,v)

return struct.unpack('

d',s)[0]

完整示例**如下:

好,就這些了,希望對你有幫助。

浮點數網路傳輸.rst

歡迎補充

浮點數 儲存

關鍵字 體系結構 ieee754 浮點數 儲存 main 如果不執行上面的 讓我們來直接判斷,輸出的結果會是什麼?而在你執行程式之後,結果卻很讓人詫異 123.456001。為什麼會是123.456001?有六位小數可以理解,最後那個1是為何?有很多人解釋說最後那個1是亂碼,隨機的。嘿嘿 其實無論你...

浮點數操作

float fx 49.03f int nx fx 100 printf d nx 執行上述 結果 4902。用vc6.0,2005,gcc編譯執行結果都是一樣。為什麼會這樣呢,是因為浮點數運算具有不精確性。其實編譯上面的 編譯器會有警告的。warning c4244 initializing co...

浮點數比較

在數 算當中經常會涉及到判斷兩個數是否相等的情況 對於整數很好處理 a b這樣的乙個語句就可以解決全部的問題 但是對於浮點數是不同的 首先,浮點數在計算機當中的二進位制表達方式就決定了大多數浮點數都是無法精確的表達的 現在的計算機大部分都是數字計算機,不是模擬機,數字機的離散化的資料表示方法自然無法...