2011-05-12 50 views
0

我有一個需要通過TCP/IP發送的float數組,協議是基於文本的,所以基本上我不能直接發送二進制文件。Python Float到Ord值

什麼進出口試圖做的是浮點值轉換爲4奧德

所以EX:

「」 「初始化浮動 」「」

A = 3.14159

「」「最終結果應該是包含4個Ord的字符串,每個字節的浮點值爲1:」「」

b =「\ 123 \ 23 \ 22 \ 245」

任何人都可以幫助我嗎?

TIA!

+1

你確定你不是指'b = b「\ 123 \ 23 \ 22 \ 245」'? – 2011-05-12 02:55:20

回答

4
>>> import struct 
>>> struct.pack("!f",3.14159) 
b'@I\x0f\xd0' 

不知道你在哪裏"\123\23\22\245"

趕到如果你想轉換花車

>>> a=[3.14159, 2.71828] 
>>> struct.pack("!{}f".format(len(a)), *a) 

名單會給你一個字符串。不需要顯式循環並加入

+0

何! \之間的數字是協議分析字節值的方式... 所以基本上我有3個3.14159浮點數,我需要將它轉換爲4個無符號字符值由\ – McBob 2011-05-12 03:23:03

+0

分隔好吧剛試過你的代碼: A = struct.pack( 「F!」,3.14159) 爲我的range(LEN(A)): \t打印(A [1]) 得到它的工作,現在我需要連接那變成一個長串。對於這個「」.join應該是最快的權利? – McBob 2011-05-12 03:27:57

+0

另一個問題是!f顛倒了字節順序,它不應該只是f而是? – McBob 2011-05-12 03:29:25