399源碼
㈠ 遊程編碼源代碼
這個...........樓上的諸位說的都是什麼啊。今天剛好看到這個問題,把你的E-mail給我把,我有純c的源碼(RLC)。
算了,直接貼關鍵部分吧。這個有一點C++成分,很容易改的。
bool CompressRunLength(BYTE *pSrc, int nSrcLen, BYTE *&pDes, int &nDesLen, int nBitsPerSample, void* nRuns, int nRunCount, int nRunSize);
bool DecompressRunLength(BYTE *pSrc, int nSrcLen, BYTE *&pDes, int &nDesLen);
#define GetDWORD(buf,bit,mask) ((*(DWORD*)(((BYTE*)buf)+((bit)>>3)))>>((bit)&7)&(mask))
#define GetWORD(buf,bit,mask) ((*(WORD*)(((BYTE*)buf)+((bit)>>3)))>>((bit)&7)&(mask))
int GetBitCount(int n)
{
int nBitCount = 0;
while(n)
n >>= 1, nBitCount++;
return nBitCount;
}
int BinarySearch(void* pValue, int nVlaueSize, void* pArray, int nCount)
{
int nIndex, nResult, nStart = 0, nEnd = nCount-1;
while(nStart <= nEnd)
{
nIndex = (nEnd+nStart)/2;
if((nResult = memcmp((BYTE*)pArray+nIndex*nVlaueSize, pValue, nVlaueSize)) == 0)
return nIndex;
if(nResult > 0)
nEnd = nIndex-1;
else
nStart = nIndex+1;
}
return -1;
}
bool CompressRunLength(BYTE *pSrc, int nSrcLen, BYTE *&pDes, int &nDesLen, int nBitsPerSample, void* nRuns, int nRunCount, int nRunSize)
{
pDes = (BYTE*)malloc(nSrcLen*2);
memset(pDes, 0, nSrcLen*2);
nDesLen = sizeof(DWORD);
*(DWORD*)pDes = nSrcLen; // save source length
*(pDes+nDesLen++) = nBitsPerSample; // save bits per sample
*(pDes+nDesLen++) = nRunCount; // save runs count
*(pDes+nDesLen++) = nRunSize; // save run bytes
memcpy(pDes+nDesLen, nRuns, nRunCount*nRunSize); // save runs
nDesLen += nRunCount*nRunSize;
nDesLen <<= 3; // bytes to bits
if(nRunCount == 0)
nRunCount = 256, nRunSize = 1, nRuns = NULL;
int nBitsPerTypeIndex = GetBitCount(nRunCount-1);
int nMaxRunLength = (1 << nBitsPerSample)-1, nRunLength, nRunIndex, nByte = 0;
// loop in the source buffer
while(nByte < nSrcLen)
if((nRuns && (nRunIndex = BinarySearch(pSrc+nByte, nRunSize, nRuns, nRunCount)) != -1 &&
memcmp(pSrc+nByte+nRunSize, (BYTE*)nRuns+nRunIndex*nRunSize, nRunSize) == 0) ||
(!nRuns && (nRunIndex = *(pSrc+nByte)) == *(pSrc+nByte+1)))
{ // set bit to 1 to indicate type found
*(pDes+(nDesLen>>3)) |= 1 << (nDesLen&7);
*(DWORD*)(pDes+(++nDesLen>>3)) |= nRunIndex << (nDesLen&7);
nDesLen += nBitsPerTypeIndex;
// skip the two repeated runs
nByte += nRunSize*2;
// get run length - 2 (without the two repeated runs)
nRunLength = 0;
while(nRunLength < nMaxRunLength && nByte < nSrcLen &&
((nRuns && memcmp(pSrc+nByte, (BYTE*)nRuns+nRunIndex*nRunSize, nRunSize) == 0) || (!nRuns && (BYTE)nRunIndex == *(pSrc+nByte))))
nRunLength++, nByte += nRunSize;
// save run length and increment destination length by bits per sample
*(DWORD*)(pDes+(nDesLen>>3)) |= nRunLength << (nDesLen&7);
nDesLen += nBitsPerSample;
}
else // one byte
*(WORD*)(pDes+(++nDesLen>>3)) |= *(pSrc+nByte++) << (nDesLen&7), nDesLen += 8;
nDesLen = (nDesLen+7)/8; // bits to bytes
pDes = (BYTE*)realloc(pDes, nDesLen);
return true;
}
bool DecompressRunLength(BYTE *pSrc, int nSrcLen, BYTE *&pDes, int &nDesLen)
{
if(nSrcLen == 0)
return true;
// allocate destination buffer
nDesLen = *(DWORD*)pSrc;
pDes = (BYTE*)malloc(nDesLen);
memset(pDes, 0, nDesLen);
// compression information
int nSrcIndex = sizeof(DWORD);
int nBitsPerSample = *(pSrc+nSrcIndex++);
int nRunCount = *(pSrc+nSrcIndex++);
int nRunSize = *(pSrc+nSrcIndex++);
void* nRuns = pSrc+nSrcIndex;
nSrcIndex += nRunSize*nRunCount;
nSrcIndex <<= 3; // bytes to bits
if(nRunCount == 0)
nRunCount = 256, nRunSize = 1, nRuns = NULL;
int nBitsPerTypeIndex = GetBitCount(nRunCount-1);
int nMaxTypeIndex = (1 << nBitsPerTypeIndex)-1;
int nMaxRunLength = (1 << nBitsPerSample)-1;
int nDesIndex = 0, nRunLength, nRunIndex, nRun, nByte;
nSrcLen <<= 3; // bytes to bits
while(nSrcIndex < nSrcLen-8)
if((*(pSrc+(nSrcIndex>>3)) >> (nSrcIndex++&7)) & 1)
{
nRunIndex = GetDWORD(pSrc, nSrcIndex, nMaxTypeIndex), nSrcIndex += nBitsPerTypeIndex;
nRunLength = GetDWORD(pSrc, nSrcIndex, nMaxRunLength)+2, nSrcIndex += nBitsPerSample;
for(nRun = 0; nRun < nRunLength; nRun++)
for(nByte = 0; nByte < nRunSize; nByte++, nDesIndex += 8)
*(WORD*)(pDes+(nDesIndex>>3)) |= nRuns ? GetWORD(nRuns+nRunSize*nRunIndex, nByte<<3, 0xff) : (BYTE)nRunIndex;
}
else // one byte
*(WORD*)(pDes+(nDesIndex>>3)) |= GetWORD(pSrc, nSrcIndex, 0xff), nDesIndex += 8, nSrcIndex += 8;
return true;
}
㈡ 佛山專門做微信小程序開發的,專業一點的公司,我想做一個購買商品的微信小程序
一般情況下,小程序開發的費用由以下因素決定
小程序的類型有很多,例如商城類、資訊類、預約類等等,每一個類型的小程序需要的功能是不一樣的,例如商城類需要購物車、下單、付款、物流查詢功能,預約類的小程序,需要展示、預定、反饋等功能。所以,功能也是影響價格的因素之一。所以,小程序的具體費用,得在確定完你需要什麼功能之後,才能確定。
小程序通常都是由多個頁面組成的,但每個小程序需要多少個頁面,需要根據企業、商家的實際情況而定。例如,A公司需要3個頁面,B公司需要5頁面,因此它的費用是不一樣的,所以整體的價格得根據最後確定的需求來定。
開發方式
小程序的開發方式分為模板開發和定製開發:
模板開發,顧名思義,就是直接套用行業模板來進行開發的,由於是直接套用模板,因此開發工作並不復雜,所以價格上會便宜一點,價格大約是1000元-10000元左右。當然具體的價格得根據你的行業來確定。
定製開發小程序,就是獨立開發每一個頁面、每一項功能,因此開發工作較為復雜,耗時較長,所以價格上會貴一點,具體費用和需求有關,沒有一個特別固定的價格。小程序的功能越復雜,質量越高,報價越高,反之越低。一般小程序系統有兩種:一種是模板小程序,這種小程序系統的價格一般會在幾百到幾千不等,如目前一些用戶使用的自助小程序系統,不能過多要求,也不能大改動,因為已經成型,模板千篇一律,用戶體驗不高,界面沒有多少設計感,功能也限製得很死。
另一種就是定製型的,就是小程序系統所有的功能都是需要定製開發的,從零開發的,一般費用非常昂貴,根據客戶所要求的功能,可能要幾千到幾十萬不等,而且開發周期也比較長,但是無論如何,小程序的開發費用都要比APP應用開發要便宜一些。小程序開發的費用:一般幾千到幾萬不等、看具體要求。
其實開發小程序的價格主要取決於你要做多少頁面和要做的頁面和功能的復雜程度。
如果是行業內比較成熟的標准化系統就會相對便宜點。
如:餐飲行業類、酒店預約類的小程序實現簡單的功能一般在萬元左右,幾千塊錢就可以了,因為模板的功能已經相對豐富了。而簡單的企業展示類的一般三四千就可以了。
但如果是全部需要開發定製,且功能也比較復雜、繁瑣,周期比較長的話,一般都是幾萬甚至超過10萬,而且像這種是需要商家提出具體的需求服務商才能判斷出具體價格。
微信小程序的運營初期,很多用戶對於微信小程序都會抱有一定的好奇心理,企業需要抓住紅利期的這段時間,在這段時間內企業藉助小程序可開發一些有益於自身企業的應用,再加上趣味性、實用性,就能很容易吸引用戶前來關注,為企業帶來大批的潛在客戶。目前微信小程序主要分為兩個方面:
第1種是賣模板為主的網路公司。
優點是:價格低,幾千塊錢到萬元之間就能搞定,方便,能夠快速上線;
缺點是:修改功能麻煩,這里需要避免低價陷阱,不要到最後才發現模板性的修改功能所花的錢比買模板還貴,也是闊怕。而且不是獨立的,一個模本賣給很多商家用~ ,一旦出現木馬漏洞修復也沒有保障!嗯,大概就是這樣。哦,對了。還有模板不是永久使用的,一般每年都要交不少的年費。
第2種是主流的方式,定製開發為主的網路公司。
優點是:獨一無二的,專為你的企業或者店面定製的,功能你來定,要求你來定,後期修改bug方便,改東西也很方便,最重要的是永久使用權!
缺點是:相對價格比較高! 定製版的基本費用在上萬元到十幾萬不等!不過貴也有貴的道理吧,畢竟功能做的更全面更牛一點。
所以還是需要看貴公司的具體需求,希望可以幫到您!望採納!開發一個小程序主要有三種方式,三種方式的區別和費用我大概列一下:
1、小程序定製開發顧名思義就是根據你提出來的功能要求以及UI設計要求,專門定製出來的,具有個性化、唯一性的特點。而且源碼也會掌握在自己手裡,自建伺服器的話,數據的保密安全性都可以得到保障。唯一的缺點就是費用較高,但是貴有貴的道理,畢竟技術人員工資動輒1萬起步,一個小程序最起碼有前端、後端、UI設計人員才能開發完成的小程序,假如工期是一個月的話,光工資就要四五萬。再加上租伺服器一年3000-4000的費用,整體算下來,工期一個月左右的小程序定製開發費用要在5萬左右。
2、小程序模板——是小程序開發公司為了降低開發成本,事先開發出一套比較成熟,功能比較完善,並且會定期更新功能的小程序給商家使用,商家只需支付模板費用即可,無需租賃伺服器。模板費用一般在5000-8000之間。缺點是不能按照自己的要求修改功能和界面,優點是費用低、無需搭建伺服器、有專人維護。
3、小程序輕定製——這種方式是介於定製開發和模板之間的方式,也是很多商家都比較喜歡的合作模式,是在小程序模板的基礎上增加修改功能或界面,不但滿足了自己個性化的要求,又降低了開發成本,資料庫伺服器也是獨立出來的。
小程序模板目前已經做出來30+行業版本:分銷、電商、社區團購、瑜伽健身、美容、教育培訓、婚紗攝影、餐飲、酒店、家政、房地產、二手車等等,模板滿足不了需求還可以輕定製,花費最少的錢做個性化的定製。
希望能夠幫助到你。小程序開發既有免費的,也有¥399、¥599的,而貴的需要十幾萬。
不過即使免費的其實你需要投入昂貴的代價——你的時間以及試錯成本!身邊很多人總是想著自己學習一下然後搭建一個免費小程序,覺得這樣很劃算,但作為老闆或創業者的你,你的時間才是最寶貴的,小程序開發是一個技術活兒,如果你沒有寫代碼的功底,即使學1個月也做不出一個小程序。當然,簡易版的小程序是個例外,但簡易版的是很多學生過家家玩玩的,並不能作為商業用途,它的功能非常不完善的。
市面上也有很多價格低廉的小程序,報價從100到10000不等,傳統企業老闆因為不懂小程序,不知道如何挑選,不知道自己付了這些錢能否購買到一個物超所值的小程序。
企業選擇物優價廉的小程序需要滿足以下條件:
1. 小程序的功能齊全。
小程序是一種工具,如果這個工具少一些功能,那這個工具就是廢的,用不了。小程序一般分為餐飲小程序、電商小程序、企業展示小程序、游戲小程序,每個種類的小程序都有一些特定的功能,比如餐飲小程序需要點餐、排好、預約、支付、外賣等功能,你采購的小程序里是否這些功能都有。所以在你做小程序之前,你需要想清楚自己的小程序是用來做什麼的?需要哪些功能?有一些非常小白的企業老闆,覺得小程序是風口、其他企業都在,做所以自己也要做一個。但你問他需要哪些功能,他不知道。
2. 小程序的用戶體驗
包括頁面設計十分美觀、響應速度十分快、功能既簡潔又安全本人用過一些小程序,頁面設計非常low,土氣迎面撲來,讓我對品牌大打折扣。還有一些小程序,載入半天圖片出不來,我也是醉了。
3. 小程序的源代碼歸誰所有,伺服器的錢誰出、是否後期運維費用。
小程序開發有很多隱性成本,如果企業前提沒有和外包公司,很可能被坑。比如有些外包公司給的小程序是一個模板,源代碼是不給企業的,而且源代碼是放在共用的伺服器上,數據非常不安全。後期如果你需要修改某個功能,需要收取甚至比開發成本更高的運維費用,非常不劃算。所以每一項費用都需要詳細寫在合同里。
4. 性價比是否高
營銷圈最大的問題在於,產品和價格不標准化,同樣的小程序,有的外包公司報價¥1000,有的報價¥10000,企業根本弄不清楚1000元和10000元的小程序差異在哪裡。選擇貴的覺得不劃算,選擇便宜的又怕小程序不好用,猶豫不決。
㈢ aes128,192,256如何加密如何解密有沒有在線工具在線加
探討AES加密與解密方法。AES支持128、192和256位加密,具體實現方式包括CBC、CFB、ECB、OFB和PCBC模式。
若尋求源碼參考,可訪問it399.com/blog/web/2018...獲取相關實現代碼,親測可行。
對於在線操作,建議嘗試使用it399.com/aes提供的在線工具,支持上述AES位數和加密模式的在線加密與解密功能。