⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 decrc.cpp

📁 CDMA2000,解CRC_12,输入192个信息比特
💻 CPP
字号:
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>

int *decrc_12(int *string_decrc)
{
   int *p_decrc = (int   *)malloc(200*sizeof(int));   
   static int string_afterdecrc[173];              //加一判断位
   int i;
   int j=0;
   int poly_decrc[13]={1,1,1,1,1,0,0,0,1,0,0,1,1};
   

   for(i=0;i<=183;i++)
   {
	   *(p_decrc+i)=*(string_decrc+i);
   }
   *(p_decrc+184)=2;


/*   for(i=0;i<=171;i++)                        //  信息比特
   {
      string_aftercrc[i]=*(p_crc+i);
   }

   for(i=1;i<=12;i++)                      //  补12个0
   {
      *(p_crc+171+i)=0;
   }  */
   
   while(j<=171)                             
   {
   for(i=0;i<=12;i++)                          //  异或
   {
	   *(p_decrc+i)=*(p_decrc+i)^poly_decrc[i];
   }
   i=0;

   while(*(p_decrc+i)==0)
   {
	   i++;
   }

   p_decrc=p_decrc+i;                           //  移位
   j=j+i;
   }


   for(i=0;i<=171;i++)
	   {
		   string_afterdecrc[i]=*(string_decrc+i);
	   }

   if(*(p_decrc)==2)
   {
	   string_afterdecrc[172]=1;
   }
   else
   {
	   string_afterdecrc[172]=0;
   }
   return (string_afterdecrc);
}

   
 void main()
 {
	 int string[192]={1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
					  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,
	                  1,0,1,1,0,0,1,1,0,1,1,1};
     int i=0;
	 int *s;
	 
     s= decrc_12(string);

	 if(*(s+172)==1)
	 {
		 for(i=0;i<=171;i++)
		 {printf("%d",*(s+i));}
          printf("\n\nfrefre");
	 }
	 else
	 {
          printf("wrong\n\nfrefre");
	 }
 }
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -