亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bchencoder.cpp

?? 一個解碼的類
?? CPP
字號:
// BCHEncoder.cpp: implementation of the CBCHEncoder class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "BCHEncoder.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CBCHEncoder::CBCHEncoder()
{
	//Initialize Variables
	m = 5; n = 31; k = 21; t = 2; d = 5;
	length = 31;

	// Primitive polynomial of degree 5
    // x^5 + x^2 + 1
	p[0] = p[2] = p[5] = 1; 
	p[1] = p[3] = p[4] = 0;


	//Initialize BCH Encoder
	InitializeEncoder();
}

CBCHEncoder::~CBCHEncoder()
{

}

void CBCHEncoder::GenerateGf()
{
	/*
	* generate GF(2**m) from the irreducible polynomial p(X) in p[0]..p[m]
	* lookup tables:  index->polynomial form   alpha_to[] contains j=alpha**i;
	* polynomial form -> index form  index_of[j=alpha**i] = i alpha=2 is the
	* primitive element of GF(2**m) 
	*/
	
	int i, mask;
	mask = 1;
	alpha_to[m] = 0;
	
	for (i = 0; i < m; i++) 
	{
		alpha_to[i] = mask;
		
		index_of[alpha_to[i]] = i;
		
		if (p[i] != 0)
			alpha_to[m] ^= mask;
		
		mask <<= 1;
	}

	index_of[alpha_to[m]] = m;
	
	mask >>= 1;
	
	for (i = m + 1; i < n; i++) 
	{
		if (alpha_to[i - 1] >= mask)
		  alpha_to[i] = alpha_to[m] ^ ((alpha_to[i - 1] ^ mask) << 1);
		else
		  alpha_to[i] = alpha_to[i - 1] << 1;
	
		index_of[alpha_to[i]] = i;
	}
	
	index_of[0] = -1;
}


void CBCHEncoder::ComputeGeneratorPolynomial()
{
	/* 
	* Compute generator polynomial of BCH code of length = 31, redundancy = 10
	* (OK, this is not very efficient, but we only do it once, right? :)
	*/

	int ii, jj, ll, kaux;
	int test, aux, nocycles, root, noterms, rdncy;
	int cycle[15][6], size[15], min[11], zeros[11];
	
	// Generate cycle sets modulo 31 
	cycle[0][0] = 0; size[0] = 1;
	cycle[1][0] = 1; size[1] = 1;
	jj = 1;			// cycle set index 
	
	do 
	{
		// Generate the jj-th cycle set 
		ii = 0;
		do 
		{
			ii++;
			cycle[jj][ii] = (cycle[jj][ii - 1] * 2) % n;
			size[jj]++;
			aux = (cycle[jj][ii] * 2) % n;

		} while (aux != cycle[jj][0]);
		
		// Next cycle set representative 
		ll = 0;
		do 
		{
			ll++;
			test = 0;
			for (ii = 1; ((ii <= jj) && (!test)); ii++)	
			// Examine previous cycle sets 
			  for (kaux = 0; ((kaux < size[ii]) && (!test)); kaux++)
					if (ll == cycle[ii][kaux])
						test = 1;
		} 
		while ((test) && (ll < (n - 1)));
		
		if (!(test)) 
		{
			jj++;	// next cycle set index 
			cycle[jj][0] = ll;
			size[jj] = 1;
		}

	} while (ll < (n - 1));
	
	nocycles = jj;		// number of cycle sets modulo n 
	// Search for roots 1, 2, ..., d-1 in cycle sets 
	
	kaux = 0;
	rdncy = 0;
	
	for (ii = 1; ii <= nocycles; ii++) 
	{
		min[kaux] = 0;
		
		for (jj = 0; jj < size[ii]; jj++)
			for (root = 1; root < d; root++)
				if (root == cycle[ii][jj])
					min[kaux] = ii;
		
		if (min[kaux]) 
		{
			rdncy += size[min[kaux]];
			kaux++;
		}
	}

	noterms = kaux;
	kaux = 1;
	
	for (ii = 0; ii < noterms; ii++)
		for (jj = 0; jj < size[min[ii]]; jj++) 
		{
			zeros[kaux] = cycle[min[ii]][jj];
			kaux++;
		}
	
	//printf("This is a (%d, %d, %d) binary BCH code\n", length, k, d);
	// Compute generator polynomial 
	g[0] = alpha_to[zeros[1]];
	g[1] = 1;		// g(x) = (X + zeros[1]) initially 
	
	for (ii = 2; ii <= rdncy; ii++) 
	{
	  g[ii] = 1;
	  for (jj = ii - 1; jj > 0; jj--)
	    if (g[jj] != 0)
	      g[jj] = g[jj - 1] ^ alpha_to[(index_of[g[jj]] + zeros[ii]) % n];
	    else
	      g[jj] = g[jj - 1];
	  
		g[0] = alpha_to[(index_of[g[0]] + zeros[ii]) % n];
	}
}

void CBCHEncoder::Encode()
{
	int    h, i, j=0, start=0, end=(n-k);
	
	// reset the M(x)+r array elements
	for (i = 0; i < n; i++)
		Mr[i] = 0;
	
	// copy the contents of data into Mr and add the zeros
	// use the copy method of arrays, its better :-)
	for (h=0; h < k; ++h)
		Mr[h] = data[h];
	
	
	while (end < n)
	{
		for (i=end; i>start-2; --i)
		{
			if (Mr[start] != 0)
			{
				Mr[i]^=g[j];
				++j;
			}
			else
			{
				++start;
				j = 0;
				end = start+(n-k);
				break;
			}
		}
	}
	
	
	//printf("start: %d, end: %d\n\n",start,end);
	j = 0;
	for (i = start; i<end; ++i)
	{
		bb[j]=Mr[i];
		++j;
	}
}



void CBCHEncoder::InitializeEncoder()
{
	GenerateGf();					// Generate the Galois Field GF(2**m) 
	ComputeGeneratorPolynomial();	// Compute the generator polynomial of BCH code 
}


void CBCHEncoder::SetData(int *pData)
{
	for (int i=0; i<21; i++)
		data[i]=pData[i];
}


int* CBCHEncoder::GetEncodedDataPtr()
{
	int i;
	int iEvenParity=0;
/*

	for (i = 0; i < length - k; i++)
	{
		recd[i+1] = bb[i];	// first (length-k) bits are redundancy 
		
		if (bb[i]==1)
			iEvenParity++;
	}
	
	for (i = 0; i < k; i++)
	{
		recd[i + length - k] = data[i];	// last k bits are data 

		if (bb[i]==1)
			iEvenParity++;
	}
*/
	for (i=0; i<21; i++)
	{
		//recd[i+11]=data[i];
		recd[31-i]=data[i];

		if (data[i]==1)
			iEvenParity++;
	}

	for (i=0; i<11; i++)
	{
		recd[10-i]=bb[i];

		if (bb[i]==1)
			iEvenParity++;
	}

	if (iEvenParity%2==0)
		recd[0]=0;
	else
		recd[0]=1;

	return (int*) recd;
}

void CBCHEncoder::SetData(int iData)
{
	//we only use the 21 most significant bits
	int iTemp=iData;

//	iTemp=iTemp >> 11;
	int j=0;

	for (int i=31; i>10; i--)
	{
		int iOne=1<<i;
		if (iTemp & iOne)
			data[j++]=1; //data[i-11]=1;
		else
			data[j++]=0; //data[i-11]=0;
	}
}

int CBCHEncoder::GetEncodedData()
{
	int Codeword[32];
	int iResult=0;

	memcpy(Codeword, GetEncodedDataPtr(), sizeof(int)*32);

	for (int i=0; i<32; i++)
	{
		if (Codeword[i])
			iResult|=(1<<i);
	}

	return iResult;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区中文字幕| 欧美一级在线观看| 欧美精选一区二区| 国产欧美一区二区精品仙草咪| 亚洲乱码中文字幕综合| 国产精品一二三在| 91麻豆精品国产无毒不卡在线观看| 久久久精品蜜桃| 免费视频一区二区| 欧美人狂配大交3d怪物一区| 亚洲男人都懂的| 成人自拍视频在线观看| 精品国产乱码久久久久久老虎| 亚洲午夜久久久久中文字幕久| 99精品欧美一区二区三区小说 | www.日韩精品| 日韩欧美国产高清| 日韩精品一级二级 | 成人国产精品视频| 久久精品亚洲一区二区三区浴池 | 精品日韩成人av| 日韩黄色在线观看| 欧美老女人在线| 亚洲国产成人精品视频| 欧美色图12p| 亚洲国产视频一区| 欧美日韩你懂的| 偷拍与自拍一区| 欧美一区二区在线播放| 日韩主播视频在线| 91麻豆精品国产91久久久| 亚洲国产美国国产综合一区二区| 在线中文字幕一区二区| 中文字幕日韩一区| 91麻豆国产香蕉久久精品| 中文字幕欧美一区| 91婷婷韩国欧美一区二区| 中文字幕一区二区三区不卡 | 91啪亚洲精品| 亚洲综合在线视频| 欧美日韩国产影片| 秋霞电影一区二区| 精品国产免费一区二区三区香蕉| 国产一区二区免费在线| 国产精品久久二区二区| 91麻豆免费看片| 亚洲高清不卡在线| 欧美一区二区在线播放| 国产一区在线观看视频| 国产精品精品国产色婷婷| 色噜噜狠狠色综合中国| 热久久一区二区| 国产精品久久毛片av大全日韩| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲精品国产一区二区精华液| 欧美日韩在线播| 老汉av免费一区二区三区| 久久精品欧美日韩精品| 91色视频在线| 午夜电影一区二区三区| 国产亚洲制服色| 色婷婷激情综合| 久久99精品国产麻豆不卡| 中文字幕中文字幕在线一区 | 久久99热这里只有精品| 欧美国产视频在线| 色av一区二区| 国产精品一级二级三级| 亚洲一区二区三区自拍| 久久综合久久综合亚洲| 99re热视频这里只精品| 免费在线一区观看| 亚洲欧洲日韩在线| 精品处破学生在线二十三| 色综合久久精品| 精品亚洲aⅴ乱码一区二区三区| 日韩理论片在线| 久久九九国产精品| 欧美日韩亚洲综合一区二区三区| 高清免费成人av| 蜜桃在线一区二区三区| 亚洲小少妇裸体bbw| 国产精品每日更新在线播放网址| 欧美片网站yy| 91麻豆免费在线观看| 国产黄色91视频| 免费成人在线观看视频| 亚洲一区二区精品3399| 中文字幕一区二区在线观看| 久久综合九色综合97婷婷女人| 欧美日韩在线三级| 色哟哟在线观看一区二区三区| 国产精品资源网站| 精品中文字幕一区二区| 亚洲国产毛片aaaaa无费看| 日韩理论片在线| 国产欧美日韩久久| 国产日韩精品视频一区| 亚洲精品一区在线观看| 欧美一区二区网站| 欧美肥大bbwbbw高潮| 色就色 综合激情| 一本色道亚洲精品aⅴ| www.欧美精品一二区| 国产成人免费高清| 国产成人综合自拍| 国产91丝袜在线播放0| 黄色日韩网站视频| 国产高清无密码一区二区三区| 日精品一区二区三区| 日韩高清不卡一区二区三区| 亚洲一二三区不卡| 亚洲成人动漫精品| 婷婷激情综合网| 日韩电影在线看| 麻豆精品视频在线观看免费| 日韩高清欧美激情| 蜜桃久久精品一区二区| 久久国产精品一区二区| 韩国三级中文字幕hd久久精品| 国内外成人在线视频| 国产福利91精品一区| 顶级嫩模精品视频在线看| 91在线无精精品入口| 日本高清不卡视频| 7777精品伊人久久久大香线蕉最新版| 在线观看精品一区| 91精品国产综合久久蜜臀 | 国内一区二区在线| 福利视频网站一区二区三区| 北条麻妃国产九九精品视频| 91小视频在线| 欧美日韩一区二区三区在线 | 欧美亚洲动漫另类| 欧美精品高清视频| 久久综合一区二区| 最新中文字幕一区二区三区 | 日韩亚洲欧美成人一区| 久久一区二区三区四区| 亚洲色图.com| 视频一区二区国产| 国产精品99久久久久久似苏梦涵| 成人毛片老司机大片| 欧美日韩在线综合| 国产色婷婷亚洲99精品小说| 中文字幕欧美一| 麻豆成人在线观看| 91网站视频在线观看| 日韩欧美国产精品一区| 日韩理论片网站| 麻豆精品一区二区av白丝在线| 99视频超级精品| 日韩视频一区在线观看| 自拍偷拍欧美激情| 麻豆传媒一区二区三区| 色噜噜狠狠色综合欧洲selulu| 精品国产一区久久| 性久久久久久久久久久久| 国产成人av电影| 日韩欧美电影一区| 亚洲精品国产无天堂网2021| 国产精品一区二区久激情瑜伽 | eeuss国产一区二区三区| 91精品国产综合久久久久久| 国产精品美女视频| 久久99热狠狠色一区二区| 欧美视频在线观看一区二区| 久久精品综合网| 免费在线看成人av| 欧美视频精品在线观看| 亚洲欧美在线视频| 国产精品一区二区在线看| 日韩午夜电影av| 亚洲电影视频在线| 色婷婷久久久久swag精品 | 欧美精品一区二区三区在线| 亚洲黄色片在线观看| 丁香亚洲综合激情啪啪综合| 日韩免费电影网站| 天天爽夜夜爽夜夜爽精品视频| 91在线国产观看| 国产精品网站导航| 国产毛片精品视频| 久久久久久亚洲综合影院红桃| 日本三级韩国三级欧美三级| 欧美日韩国产高清一区| 亚洲一区二区三区免费视频| 91蜜桃网址入口| 亚洲国产成人porn| 色94色欧美sute亚洲线路一久 | 欧美aaaaaa午夜精品| 欧美精品一卡两卡| 欧美96一区二区免费视频| 欧洲一区在线电影| 亚洲一区二区在线观看视频| 欧美视频在线一区二区三区 | 精品日韩成人av| 精品一区二区三区免费| 精品国产91久久久久久久妲己| 国产一区二区精品久久99|