📄 reversebits.cpp
字号:
#include<stdio.h>
#include<iostream.h>
#include<math.h>
#define NumSample 4096
#define M 12
#define Pi 3.14159265358979
unsigned int ReverseBits(unsigned int index,unsigned int P)
{
unsigned int i,Rev=0;
for(i=0; i<P; i++)
{
if(index%2==1)
Rev+=(int)pow(2,P-1-i);
else
Rev=Rev;
index=index>> 1;
}
return Rev;
}
/*void FFT(float Realin[NumSample],float Imagein[NumSample])
{
float AngleNumerato=-2*Pi;
float *pReal,*pImage;
unsigned int i,j,k,n,BlockSize,BlockEnd;
float Temp,DeltaAngle,DeltaAr,Alpha,Beta,TR,Ti,AR,AI;
pReal=new float(NumSample);
pImage=new float(NumSample);
for(i=0;i<NumSample;i++)
{
j=(ReverseBits(i,M);//排序
pReal[j]=Realin[i];
pImage[j]=Imagein[i];
}
for(i=0;i<Numsample;i++)
{
Realin[i]=pReal[i];
Imagein[i]=pImage[i];
}
delete [NumSample]pReal;
delete [NumSample]pImage;
BlockEnd=1;
BlockSize=2;
while(BlockSize<=NumSample)
{
DeltaAngle=AngleNumerator/BlockSize;
Alpha=sin(0.5*DeltaAngle);
Alpha=2*Alpha*Alpha;
Beta=Sin(DeltaAngle);
i=0;
while(i<NumSample)
{
AR=1;
AI=0;
j=i;
for(n=0;n<BlockEnd;n++)
{
k=j+BlockEnd;
TR=AR*Realin[k]-AI*Imagein[k];
TI=AI*realin[k]+AR*Imagein[k];
Realin[k]=Realin[j]-TR;
Imagein[k]=Imagein[j]-TI;
Realin[j]=Realin[j]+TR;
Imagein[j]=Imagein[j]+TI;
DeltaAr=Alpha*AR+Beta*AI;
AI=AI-(Alpha*AI-Beta*AR);
AR=AR-DeltaAr;
j++;
}
i+=BlockSize;
}
BlockEnd=BlockSize;
BlockSize=BlockSize*2;
}
*/
void main()
{
unsigned int n,m;
n=152;
m=ReverseBits(n,M);
cout<<"m="<<m<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -