zoukankan      html  css  js  c++  java
  • 快速离散傅里叶变中的倒位序号问题

    之前写过一篇关于倒位序号的算法,实现简单,但是算法不易理解。再写一个容易理解,但是感觉很low的。。。。

    首先解释一下倒位序号。。

    倒位序号就是指将数n的二进制码的位序颠倒后的数n^,比如说n=6,6的二进制数为110,倒序就为011,那么n^就等于3;

    基本的思路就是,先求n的二进制数,利用的方法就是经典的“初二取余法”,求出来的就是倒序的二进制;

    最后在将二进制转换成对应的十进制即可。。。

    给出代码(只实验了8个数的)

    #include<math.h>
    #include<stdio.h>
    #include<stdlib.h>
    #define N 8
    int reverse(int scr,int num);
    int main()
    {
        int scr[N]={0,1,2,3,4,5,6,7};
        printf("原数组为:
    ");
        for(int i=0;i<N;i++)
        {
            printf("%d  ",scr[i]);
        }
        printf("
    ");
    
        int des[N];
    
    
        int n=0; //求有几个二进制位,比如8个数对应3个二进制位,16个对应4个二进制位
        int num=N;
        while(  (num/2)  !=0)
        {
            num=num/2;
            n++;
        }
    //
        for( i=0;i<N;i++)
        {
            des[i]=reverse(scr[i],n);
        }
    
    
        printf("变化后的数组为:
    ");
        for(i=0;i<N;i++)
        {
            printf("%d  ",des[i]);
        }
        printf("
    ");
    
        return 0;
    }
    
    //位码倒序的实现函数
    //输入参数为原位,输出为其倒序
    //返回值为二进制的位数
    int reverse(int scr,int n)
    {
        
        
    
        //用于保存将十进制转换成的二进制(是倒序的)
        int binary[10]={0};//2的10次方就是1024如果仅仅是验证算法,这点空间就够了
        //利用商余法求十进制数对应的二进制(倒序)
        int index=0;//用于控制下标移动
    
        while(   scr  !=0   )
        {
            
            binary[index]=scr%2;//求余数
            scr=scr/2;//求商,作为下次的被除数
            index++;
        }
        
        //然后把binary转换成十进制
    
        int sum=0;//
    
        for(int i=0;i<n;i++)
        {
        
            sum+=binary[i]*pow( 2, (n-i-1) );
    
        }
    
        return sum;
    }
  • 相关阅读:
    Analysis Services features supported by SQL Server editions
    Azure DevOps to Azure AppServices
    Power BI For Competition
    Win10开机“提示语音”以及”随机播放音乐”
    Azure DevOps
    Allow Only Ajax Requests For An Action In ASP.NET Core
    Mobile CI/CD 101
    Configure SSL for SharePoint 2013
    AWS Step Function Serverless Applications
    Cordova Upload Images using File Transfer Plugin and .Net core WebAPI
  • 原文地址:https://www.cnblogs.com/qingergege/p/5383094.html
Copyright © 2011-2022 走看看