簡體   English   中英

如何將四個浮點數壓縮成一個字符串?

[英]How can I compress four floats into a string?

我想以盡可能最短的方式使用字符集 [a..z, A..Z, 0..9] 表示四個浮點數,例如123.545, 56.234, -4534.234, 544.64這樣我就可以對四個浮點數進行編碼並將它們存儲在文件名中。 這樣做最有效的是什么?

我看過 base64 編碼,它實際上並沒有壓縮結果。 我還查看了一個折線編碼算法,它使用像){這樣的字符,但我不能這樣做。

您可以使用struct模塊將它們存儲為二進制 32 位浮點數,並將結果編碼為 base64。 在 Python 2 中:

>>> import struct, base64
>>> base64.urlsafe_b64encode(struct.pack("ffff", 123.545,56.234,-4534.234,544.64))
'Chf3Qp7vYELfsY3F9igIRA=='

可以刪除 == 填充並重新添加以進行解碼,以便 base64 字符串的長度是 4 的倍數。您還需要使用 URL 安全的 base64 來避免 / 字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM