multiplicación binaria

int binMultiply(long long a,long long b,long long m){
    int ans=0;
    while(b){
        if(b&1){
            ans=(ans+a)%m;
        }
        a=(a+a)%m;
        b=b>>1;
    }
    return ans;
}
Crowded Caiman