簡體   English   中英

Java 120位數據轉換為32位

[英]Java 120 bits data conversion into 32 bits

有什么方法可以將我的120位數據轉換為32位,然后從這32位取回我的120位數據?

這稱為無損壓縮,您絕對應該閱讀有關它的教程

話雖如此,您可以對任何數據進行壓縮的過程很大程度上取決於數據中信息的冗余性。 因此,您也許可以將其降低到32位,但是並不能保證。

有數學上的證明,這種轉換不可能“永遠”發生,這被稱為信鴿原理。

http://en.wikipedia.org/wiki/Pigeonhole_principle

基本上,如果您可以將120位的任何序列壓縮為32位,則可以遞歸地將整個網絡壓縮為32位。

現在,這並不意味着永遠不可能:只要事先知道要壓縮的序列的某些屬性,就可以將約120位的序列壓縮為32位。

例如,IP可以是列表的一部分,而不是“任何”可能的值。 列表中的索引將花費少於32位。 與“端口號”相同,它可能不是完全隨機的,您可以將選擇范圍縮小為預定義的號碼列表。 如果只有4個端口,則只需要2位(而不是16位)。

對於時間戳,這要困難得多。 這取決於測量的精度。 一種可能性是使用“增量”值(作為+ N加上已知的“基數”)。 可以用於時間戳的位數取決於先前字段已使用的位數。

因此,有可能將其壓縮為32位,但不能保證。 這在很大程度上取決於您必須考慮的各種情況。

無法將每個 120位數據壓縮為32位數據並解壓縮回原始數據。 但是,您只能無損地壓縮其中的一些

暫無
暫無

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

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