Mod操作员不在C中工作

0 c modulo

我试图实现一个密码,我应该只在比特中工作.然而,超过2的mod运算符似乎给出了值2.有谁能告诉我什么出错了?据我所知,模数运算符无法正常工作.

注意:fcsr1并且fcsr2是仅提供80位长数组作为输入的函数.数组值均为0或1.

#include<stdio.h>

    int main(){
        int i=0,n=0;
        int ka[80],kb[80],rs[n];
        int *k1,*k2;


        printf("Enter the number of keystream bits : ");
        scanf("%d",&n);

        //Initialize all as 1
        for(i=0;i<80;i++){
            ka[i]=1;
            kb[i]=1;
        }
        int mb=0,ms=0;

        //Updating all 81 times
        k1=fcsr1(ka,&mb,81);
        k2=fcsr2(kb,&ms,81);

        for(i=0;i<n;i=i+2){
            k1=fcsr1(k1,&mb,1);
            k2=fcsr2(k2,&ms,1);

            int x0=k1[23];
            int x1=k1[73];
            int x2=k2[5];
            int x3=k2[9];
            int x4=k2[29];
            int x5=k1[51];

            //printf("%d %d %d %d %d %dNext",x0,x1,x2,x3,x4,x5);
            rs[i]=((x0*x1*x2*x4*x5+x0*x1*x2*x5+x0*x1*x2+x0*x1*x3*x5+x0*x1*x4*x5+x0*x1*x4+x0*x1*x5+x0*x1+x0*x2*x3*x4*x5+x0*x2*x3*x5+x0*x2*x3+x0*x2*x4*x5+x0*x2*x4+x0*x2+x0*x3*x4*x5+x0*x3*x4+x0*x3*x5+x0*x3+x0*x4*x5+x0*x4+x1*x2*x3*x5+x1*x2*x3+x1*x2*x4*x5+x1*x2*x4+x1*x2*x5+x1*x3*x4*x5+x1*x3*x4+x1*x3+x1*x4*x5+x1*x4+x1*x5+x2*x3*x5+x2*x3+x2*x5+x2+x3*x5+x4*x5+x5)%2);

            k2=fcsr2(k2,&ms,1);

            x0=k1[23];
            x1=k1[73];
            x2=k2[6];
            x3=k2[10];
            x4=k2[30];
            x5=k1[68];

            rs[i+1]=((x0*x1*x2*x4*x5+x0*x1*x2*x5+x0*x1*x2+x0*x1*x3*x5+x0*x1*x4*x5+x0*x1*x4+x0*x1*x5+x0*x1+x0*x2*x3*x4*x5+x0*x2*x3*x5+x0*x2*x3+x0*x2*x4*x5+x0*x2*x4+x0*x2+x0*x3*x4*x5+x0*x3*x4+x0*x3*x5+x0*x3+x0*x4*x5+x0*x4+x1*x2*x3*x5+x1*x2*x3+x1*x2*x4*x5+x1*x2*x4+x1*x2*x5+x1*x3*x4*x5+x1*x3*x4+x1*x3+x1*x4*x5+x1*x4+x1*x5+x2*x3*x5+x2*x3+x2*x5+x2+x3*x5+x4*x5+x5)%2);
            //printf("%d %d %d %d %d %dEnd",x0,x1,x2,x3,x4,x5);
            printf("%d %d ",rs[i],rs[i+1]);
        }   
    }
Run Code Online (Sandbox Code Playgroud)

结果:

Enter the number of keystream bits :
24
0 0 1 0 0 1 2 1 1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1
--------------------------------
Process exited with return value 24
Press any key to continue . . .
Run Code Online (Sandbox Code Playgroud)

ric*_*ici 6

int i=0,n=0;
int ka[80],kb[80],rs[n];

rs当变化的值时,大小不会神奇地改变n.

据推测,对于某些i和j的值,rs[i]某些赋值被x j覆盖.