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

📄 pcm_encode.cpp

📁 C语言实现的8bitA律13折线PCM编码
💻 CPP
字号:
# include <iostream>
# include <math.h>
using namespace std;
main()
{
int Input;
int Code[8] = {0};
int i = 0;
cout << "Please input a number which is between -2048 and 2048:" << endl;
cin >> Input;
if ((Input > 2048) || (Input<-2048))
{
  cout << "WARNING:Out of range!"<<endl;
}
else
{
Code[0] = Input > 0? 1:0;              //设定C0
Input = (int)fabs(Input);              //把Input转换成绝对值

if (Input >= 1024 && Input <= 2048)
{
  Code[1] = 1;
  Code[2] = 1;
  Code[3] = 1;  
  Input = Input - 1024;
  Code[4] = Input >= 512? 1:0;
  if (Input >= 512)
  {
    Input = Input - 512;
    Code[5] = Input >= 256? 1:0;
  }
  else
  {
    Code[5] = Input >= 256? 1:0;
  }
  if (Input >= 256)
  {
	Input = Input - 256;
	Code[6] = Input >= 128;
  }
  else
  {
	Code[6] = Input >= 128? 1:0;
  }
  if (Input >= 128)
  {
    Input = Input - 128;
	Code[7] = Input >= 64? 1:0;
  }
  else
  {
	Code[7] = Input >= 64? 1:0;
  }
  if (Input >= 64)
  {
	Input = Input - 64;
  }
  else
  {
    Input = Input - 0;
  }

}
else
{
  if (Input >= 512 && Input < 1024)
  {
    Code[1] = 1;
    Code[2] = 1;
    Code[3] = 0;
	Input = Input - 512;
	Code[4] = Input >= 256? 1:0;
	if (Input >= 256)
	{
      Input = Input - 256;
      Code[5] = Input >= 128? 1:0;
	}
    else
	{
      Code[5] = Input >= 128? 1:0;
	}
    if (Input >= 128)
	{
	  Input = Input - 128;
	  Code[6] = Input >= 64? 1:0;
	}
	else
	{
	  Code[6] = Input >= 64? 1:0;
	}
	if (Input >= 64)
	{
	  Input = Input - 64;
      Code[7] = Input >= 32? 1:0;
	}
	else
	{
	  Code[7] = Input >= 32? 1:0;
	}
	if (Input >= 32)
	{
	Input = Input - 32;
	}
	else
	{
	Input = Input - 0;
	}
  }
  else
  {
    if (Input >= 256 && Input < 512)
	{
    Code[1] = 1;
    Code[2] = 0;
    Code[3] = 1;
	Input = Input - 256;
	Code[4] = Input >= 128? 1:0;
	if (Input >= 128)
	 {
      Input = Input - 128;
      Code[5] = Input >= 64? 1:0;
	 }
     else
	 {
     Code[5] = Input >= 64? 1:0;
	 }
     if (Input >= 64)
	 {
	   Input = Input - 64;
	   Code[6] = Input >= 32? 1:0;
	 }
	 else
	 {
	   Code[6] = Input >= 32? 1:0;
	 }
	 if (Input >= 32)
	 {
	   Input = Input - 32;
       Code[7] = Input >= 16? 1:0;
	 }
	 else
	 {
	   Code[7] = Input >= 16? 1:0;
	 }
	 if (Input >= 16)
	 {
	   Input = Input - 16;
	 }
 	 else
	 {
	   Input = Input - 0;
	 }
	} 

	else
	{
      if (Input >= 128 && Input < 256)
	  {
	    Code[1] = 1;
        Code[2] = 0;
        Code[3] = 0;
	    Input = Input - 128;
		Code[4] = Input >= 64? 1:0;
      	if (Input >= 64)
		{
          Input = Input - 64;
          Code[5] = Input >= 32? 1:0;
		}
        else
		{
          Code[5] = Input >= 32? 1:0;
		}
        if (Input >= 32)
		{
	      Input = Input - 32;
		  Code[6] = Input >= 16? 1:0;
		}
	    else
		{
	      Code[6] = Input >= 16? 1:0;
		} 
	    if (Input >= 16)
		{
	      Input = Input - 16;
          Code[7] = Input >= 8? 1:0;
		}
	    else
		{
	      Code[7] = Input >= 8? 1:0;
		}
	    if (Input >= 8)
		{ 
	      Input = Input - 8;
		}
 	    else
		{
	      Input = Input - 0;
		}
	  }
	  else
	  {
        if (Input >= 64 && Input < 128)
		{
	      Code[1] = 0;
          Code[2] = 1;
          Code[3] = 1;
	      Input = Input - 64;
		  Code[4] = Input >= 32? 1:0;
		  if (Input >= 32)
		  {
            Input = Input - 32;
            Code[5] = Input >= 16? 1:0;
		  }
          else
		  {
            Code[5] = Input >= 16? 1:0;
		  }
          if (Input >= 16)
		  {
	        Input = Input - 16;
			Code[6] = Input >= 8? 1:0;
		  }
	      else
		  {
	        Code[6] = Input >= 8? 1:0;
		  } 
	      if (Input >= 8)
		  {
	        Input = Input - 8;
            Code[7] = Input >= 4? 1:0;
		  }
	      else
		  {
	        Code[7] = Input >= 4? 1:0;
		  }
	      if (Input >= 4)
		  { 
	        Input = Input - 4;
		  }
 	      else
		  {
	        Input = Input - 0;
		  }
		}
		else
		{
          if (Input >= 32 && Input < 64)
		  {
	        Code[1] = 0;
            Code[2] = 1;
            Code[3] = 0;
	        Input = Input - 32;
			Code[4] = Input >= 16? 1:0;
			if (Input >= 16)
			{
              Input = Input - 16;
              Code[5] = Input >= 8? 1:0;
			}
            else
			{
              Code[5] = Input >= 8? 1:0;
			}
            if (Input >= 8)
			{
	          Input = Input - 8;
			  Code[6] = Input >= 4? 1:0;
			}
	        else
			{
	          Code[6] = Input >= 4? 1:0;
			} 
	        if (Input >= 4)
			{
	          Input = Input - 4;
              Code[7] = Input >= 2? 1:0;
			}
	        else
			{
	          Code[7] = Input >= 2? 1:0;
			}
	        if (Input >= 2)
			{ 
	          Input = Input - 2;
			}
 	        else
			{
	          Input = Input - 0;
			}
		  }
		  else
		  {
            if (Input >= 16 && Input < 32)
			{
	          Code[1] = 0;
              Code[2] = 0;
              Code[3] = 1;
	          Input = Input - 16;
			  Code[4] = Input >= 8? 1:0;
			  if (Input >= 8)
			  {
                Input = Input - 8;
                Code[5] = Input >= 4? 1:0;
			  }
              else
			  {
                Code[5] = Input >= 4? 1:0;
			  }
              if (Input >= 4)
			  {
	            Input = Input - 4;
				Code[6] = Input >= 2? 1:0;
			  }
	          else
			  {
	            Code[6] = Input >= 2? 1:0;
			  } 
	          if (Input >= 2)
			  {
	            Input = Input - 2;
                Code[7] = Input >= 1? 1:0;
			  }
	          else
			  {
	            Code[7] = Input >= 1? 1:0;
			  }
	          if (Input >= 1)
			  { 
	            Input = Input - 1;
			  }
 	          else
			  {
	            Input = Input - 0;
			  }
			}
				else
				{
                  if (Input >= 0 && Input < 16)
				  {
	                Code[1] = 0;
                    Code[2] = 0;
                    Code[3] = 0;
	                Input = Input - 0;
					Code[4] = Input >= 8? 1:0;
					if (Input >= 8)
					{
                      Input = Input - 8;
                      Code[5] = Input >= 4? 1:0;
					}
                    else
					{
                      Code[5] = Input >= 4? 1:0;
					}
                    if (Input >= 4)
					{
	                  Input = Input - 4;
					  Code[6] = Input >= 2? 1:0;
					}
	                else
					{
	                  Code[6] = Input >= 2? 1:0;
					} 
	                if (Input >= 2)
					{
	                  Input = Input - 2;
                      Code[7] = Input >= 1? 1:0;
					}
	                else
					{
	                  Code[7] = Input >= 1? 1:0;
					}
	                if (Input >= 1)
					{ 
	                  Input = Input - 1;
					}
 	                else
					{
	                  Input = Input - 0;
					}
				  }
				}
		  }
		}
	  }
	}
 }

}
cout << "The PCM code is:";
for (i = 0; i < 8; i++)
  cout << Code[i];
cout << endl <<"The error is:" << Input << endl;
return 0;
}
}

⌨️ 快捷键说明

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