導航:首頁 > 文件處理 > 數字串壓縮

數字串壓縮

發布時間:2023-06-16 17:51:56

『壹』 C++對一長度為22的數字字元串,無損壓縮為16位字元串,並且可逆。有什麼好的演算法

長度22的數字字元串表示的應該是0至10^23-1
即0到9999....9 (22個9)

一個字元串佔一個位元組8位,理論上最多表示2^8-1,0~255個狀態,
或者說一個位元組無符號整數范圍是0~255

要無損壓縮0至10^23-1范圍內的整數,至少需要二進制77位(23/log10(2))

你所說的16位字元串是只16個字元串把,也就是16位元組,128位吧,
如果是的話,壓縮還是很有冗餘的,要是小於77為二進制數,就不可能無損壓縮了

最簡單的就是用4位二進制碼表示1個十進制數
4位二進制碼有16中可能,取其中的10中可能表示十進制0~1
那麼每兩位十進制數就用一個位元組表示,22位,只需要11個位元組就夠了

數字字元0~9的ascii碼是48~57(十六進制30~39),只保留低四位就是0~9
兩個10進制數給佔4位,佔一個位元組

壓縮編碼的時候,從十進制低位起,每兩個數字一組(個位和十位,百位和千位.....)
(低位的ascii-48) +(高位的ascii-48)*16 獲得一個位元組
22位的數字,能夠獲得11個位元組的數據,如果要16個位元組的話,就有5個位元組的冗餘

解碼的時候,從低到高獲得每個位元組
位元組數據/16的商+48 就是高位的ascii碼
位元組數據/16的余數+48 就是地位的ascii碼

當然乘除可以用移位運算代替,速度更快

『貳』 數字的無損壓縮演算法那些比較合適

一種新的演算法,解決了壓縮比低、壓縮與解壓縮的速度慢和格式不通用的問
題。這個《數字無損壓縮與解壓縮演算法》(下面簡稱演算法)有一個卓越的功能,
就是壓縮、壓縮……在壓縮,最終壓縮結果為900位的數據,註:(每1位只有0
或1兩種狀態),這種演算法也可以對現在的DVD光碟直接進行無損壓縮,壓縮率為
90%以上。演算法結構非常簡單,硬體易構建。是真正意義的無損壓縮,下面簡單
講一下演算法的功能和原理。
功能1、壓縮率為90%以上,如果硬體允許,演算法本身的壓縮率可做到98%以上
,壓縮最小數據量為1200位,壓縮結果為900位的數據。為了有90%的
壓縮率,所以:(1200位+1200位)×2×2=9600位,實際應用最小數
據為9600位,壓縮結果為900位。
2、演算法速度取決硬體構建,因為我對硬體不懂,還不能解釋,但我要說
:演算法結構非常簡單。
3、壓縮對象:只要是一連串的0或1組成的數據,就可以壓縮。不管是圖
像數據,還是音頻數據或各種進制,都能在這一種演算法中進行壓縮與
解壓縮,而壓縮率和速度都是一樣的。
4、實時壓縮與解壓縮,這個還要看硬體構建情況,才能回答,用我個人
的說法是:處處有餘的。
原理1、跟現在的無損壓縮,有損壓縮和混合原理,完全不同,先講布局,布
局是一個45格×45格的正方形,共有2025個空格,用來寄存數據的只
有1200空格,(每1個空格只能寄存0或1兩種狀態),1200個空格既
能寄存1200位的數據量,其餘825個空格另做它用,下面將這個布局
稱為子模型。
2、對子模型進行演算法,定位演算法,只對數據中的1進行定位演算法,不進
行定位演算法的既是0,寫入子模型的1200數據,定位演算法結果數據為900
位。
3、五個子模型,組成一個完整的演算法,數據經過兩次壓縮,原始數據96
00位,壓縮成了900位的數據,每增加1次壓縮,壓縮的數據量就得擴
大為前1次被壓縮的數據量的2倍。既9600位×2=19200位,壓縮結果數據
有是不同的900位,這樣就在次擴大了壓縮率。

原始數據9600位→(壓縮演算法)→壓縮結果數據為900位
001001……1001 001001……10010000
演算法是設計好了,只需專家的鑒定和硬體的構建,希望有更多的專業人士把這
種演算法設計到晶元上去。對《數字無損壓縮與解壓縮》的方法或技術有興趣的朋
友,我們可以一同交流一下。

『叄』 C語言 解壓縮字元串

#include<stdio.h>

intmain()

{

chars[50],s1[100];

inti=0,j=0,k,n;

gets(s);//輸入壓縮後的字元串

while(s[i])

{

s1[j]=s[i];

//因為形式是先字元後數字,所以第一個肯定是字元,先賦入另一個數組以便後續操作。

i++;j++;//遞增,開始處理下一位的數字

n=0;

while(s[i]>='0'&&s[i]<='9')//只要是數字就要進入循環統計

{

n*=10;

n+=s[i]-'0';

i++;

}

for(k=0;k<n-1;k++)

//因為解壓縮的字元已經存入數組s1,所以只剩下n-1要再放入s1

s1[j+k]=s1[j-1];

if(n>0)//注意,一定要n>0因為有可能是連續字元,本來就沒被壓縮這時如果還把j加上n-1就反而是讓j減小了。

j+=n-1;

}

s1[j]='';//處理結束後,最後一個設為空字元結束。

printf("%s ",s1);

return0;

}

(3)數字串壓縮擴展閱讀

C語言:數據結構-稀疏矩陣的壓縮存儲

稀疏矩陣的壓縮存儲原理,只存儲非零元素ai,j和相應的行、列序號i、j。具體方法:對稀疏矩陣中每一個非零元素設定一個三元組(i,j,ai,j)。

將所有三元組按行優先排列,組成一個三元組表(線性表)。只要存儲三元組表和該矩陣的行、列數,就能唯一確定該矩陣。

『肆』 「數字壓縮」是怎樣實現的

「數字壓縮」技術,可降低表達一條信息,無論是文件、靜止圖像、電影或聲音所需的數字碼(1和0的數字串)的數量。數字傳輸對傳輸視頻信息至關重要,因為數字化的視頻信息佔用大量的空間。例如,只有4秒鍾長的數字化電影會占滿100兆位元組的硬驅空間。如果不加以壓縮,一部標准長度的故事片會充滿350多盤普通光碟。為了實現壓縮,在從一幀至另一幀的畫面中,只錄下變化的部分,而不變的(如背景)則只錄下一次。目前尚不存在的一項關鍵技術是所謂的家用信息電器,它可與「信息高速公路」相接,支持所有擬議中的視頻和文字應用,並且像電話和電視機一樣使用方便。

『伍』 壓縮的十進制數串形式的表示方法是什麼求大神教,自學看書看不懂,謝謝

10進制數在計算機中可用8421BCD碼表示,分為非壓縮方式 和 壓縮方式。
非壓縮方式即一個位元組表示一位10進制,高4位為0。
壓縮方式是一個位元組表示2為10進制數。

例如:2345 這個10進制數,非壓縮方式的4個位元組順序為:
00000010 00000011 00000100 00000101
壓縮方式的兩個位元組為:00100011 01000101

閱讀全文

與數字串壓縮相關的資料

熱點內容
交警app怎麼綁定本人幾輛車 瀏覽:985
彩虹六號如何人工伺服器 瀏覽:632
mc伺服器地址怎麼登入 瀏覽:556
蘋果app怎麼掃描二維碼下載 瀏覽:959
css文件在線解壓 瀏覽:154
36歲程序員近況 瀏覽:283
哪裡可以下載不加密的歌 瀏覽:934
隱藏文件夾是什麼梗 瀏覽:918
插件注冊命令 瀏覽:497
梁一端加密一端不加密規范 瀏覽:82
代碼行數統計命令 瀏覽:104
單片機中2K表示什麼 瀏覽:482
紫禁城為什麼會斷開伺服器 瀏覽:580
華為手機的方舟編譯器在哪呢 瀏覽:125
下載壓縮虐殺原形2 瀏覽:907
linux腳本cd 瀏覽:169
間架結構pdf 瀏覽:845
重慶農村商業銀行app怎麼老出問題 瀏覽:473
慧編程配置要求 瀏覽:675
數控機床編程與操作視頻 瀏覽:462