func_code_string: #include <bits/stdc++.h>   using namespace std;   const double EPSILON = 1e-9;   const double PI = acos(0.0) * 2;   const int MOD = 1000000007;   const int INF = 0x3c3c3c3c;   const long long INFL = 0x3c3c3c3c3c3c3c3c;   const int MAX_N = 102;   long long S, X;   long long solve(long long sum, int pos) {     if (sum > S) return 0;     if (pos < 0) return sum == S;     long long ret = 0;     if (X & (1ll << pos)) {       if ((1ll << pos) + sum <= S) ret += 2 * solve(sum + (1ll << pos), pos - 1);     } else {       if ((1ll << (pos + 1)) + sum <= S)         ret += solve(sum + 2 * (1ll << pos), pos - 1);       if (S - sum <= 2 * ((1ll << pos) - 1)) ret += solve(sum, pos - 1);     }     return ret;   }   int main() {     scanf( %lld%lld , &S, &X);     cout << solve(0, 60) - (X == S ? 2 : 0);     return 0;   }   