Why is this code giving me output zero

#include
using namespace std;

void output(int n) {
int mask=1<<30;
bool is=false;
while(mask!=0) {
if(((n&mask)==0) && is==false) {
mask=mask>>1;

    }
    else{
        is=true;
        if(n&mask>0) {
            
            cout<<1;

        }
        else{
            cout<<0;
        }
        mask=mask>>1;
    }
}

}

int main() {
int n=6;
output(n);
return 0;

}