func_code_string: #include <bits/stdc++.h>   using namespace std;   int main() {     ios_base::sync_with_stdio(false);     long long sum, xr;     cin >> sum >> xr;     long long dp[2] = {1, 0};     for (int bit = 0; bit < 50; bit++) {       long long ndp[2] = {0, 0};       int needSum = (sum >> bit) & 1;       int needXor = (xr >> bit) & 1;       for (int was = 0; was < 2; was++) {         for (int b1 = 0; b1 < 2; b1++) {           for (int b2 = 0; b2 < 2; b2++) {             int mySum = (b1 + b2 + was) % 2;             int myXor = b1 ^ b2;             if (myXor == needXor && mySum == needSum) {               ndp[(b1 + b2 + was) >> 1] += dp[was];             }           }         }       }       for (int _n(2), i(0); i < _n; i++) dp[i] = ndp[i];     }     cout << (dp[0] - (sum == xr ? 2 : 0)) << endl;     return 0;   }   