📄 pcm_encode.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 + -