求了,为什么这个n永远大于63啊!

#include
#include
#include
#include
using namespace std;
int oriLights[5];//={1,1,1,1,1};
int lights[5];
int endLights[5];
int b;
int getBit(int a,int j){
return (a>>j)&1;
}
void setBit(int &a,int j,int n){
if(n){
a |=(1<<j);
}else{
a &=~(1<<j);
}
}
void flipBit(int &a,int j){
a ^=(1<<j);
}
void outputResult(int a[],int t){
cout<<t<<endl;
for(int i=0;i<5;i++){
for(int j=0;j<6;j++){
cout<<getBit(a[i],j)<<" ";
}
cout<<endl;
}
}
int main(){
int t;
cin>>t;
for(int i=0;i<t;i++){
for(int i=0;i<5;i++){
for(int j=0;j<6;j++){
int n;
cin>>n;
setBit(oriLights[i],j,n);
}
}
}

int n;
int s;
for(int n=0;n<=64;n++){
    s=n;
    memcpy(lights,oriLights,sizeof(oriLights));
    for(int a=0;a<5;a++){
        lights[a]=oriLights[a];
    }
    
    for( b=0;b<5;b++){
        endLights[b]=s;
        for(int j=0;j<6;j++){
            if(getBit(s,j)=='1'){
                flipBit(lights[b],j);
                if(j>0){
                flipBit(lights[b],j-1);}
                if(j<5){
                flipBit(lights[b],j+1);}
                
                if(b<5){
                    flipBit(lights[b+1],j);
                }
            }
            s=lights[b];
        }
        }
        if(endLights[4]==0){
            outputResult(endLights,t);
            break;
    }
    if(n>63){
        cout<<"dwjal";
    }
}

return 0;
}