Easy Understand Java Solution Based on @bupt_wc's Post
We know that (-2) ^ (1 || 3 || 5 ...) is negative.\neg. 7 = 111, but if we use -2 as base, the second \'1\' will cause (-2) ^ 1 = -2, so the sum will be (-2) ^ 
We know that (-2) ^ (1 || 3 || 5 ...) is negative.\neg. 7 = **111**, but if we use -2 as base, the second \'1\' will cause **(-2) ^ 1 = -2**, so the sum will be **(-2) ^ 2 + (-2) ^ 1 + (-2) ^ 0 = 3**, so we just need to add the subtracted number untill all subtracted numbers are added, 7 + 2 * 2 = 11, which is **1011**,  but this brings another **(-2) ^ 3 = -8**(that 3 is the 4th \'1\' from the right), so we need to add 16, 11 + 16 = 27, which is **11011**, that\'s the result.\n```\nclass Solution {\n    public String baseNeg2(int N) {\n        if (N == 0)\n            return "0";\n        for (int i = 1; i < 33; i = i + 2) {\n        \tif ((N & (1 << i)) == (1 << i)) \n        \t\tN += 2 * (1 << i);\n        }\n        StringBuilder res = new StringBuilder();\n        while (N != 0) {\n        \tres.append((N & 1));\n        \tN = N >> 1;\n        }\n        return res.reverse().toString();\n    }\n}
['Java']