Print all possible subsets of an array
Simplify

This could be written a lot simpler.
For each number until binaryLimit,
you could iterate over the bits using bit shifting,
and moving the current index in the array,
printing values when the bit is set.

private static void printAllSubsets(int... arr) {
    int size = arr.length;
    int binaryLimit = (1 &lt;&lt; size) - 1;

    for (int i = 1; i &lt;= binaryLimit; i++) {
        int index = size - 1;
        int num = i;
        while (num &gt; 0) {
            if ((num &amp; 1) == 1) {
                System.out.print(arr[index]);
            }
            index--;
            num &gt;&gt;= 1;
        }
        System.out.println();
    }
}


Calculating powers of 2

Note that Math.pow takes and returns double. Converting between types is ugly, and what's worse, floating point math is fraught with problems in general. Fortunately, for calculating powers of 2, a clean and blazingly fast alternative is to use bit shifting, as demonstrated in the code above.

Naming

subset is a poor name for a void method that prints subsets of elements of an array.

Usability

As there is no punctuation between elements as they are printed,
this method will not be very useful for larger arrays,
or arrays where values have more than one digit.

Java conventions

Capitalized variable names are normally used for constants,
never for local variables.

Method decomposition

Your implementation is very long,
and could have been split to smaller pieces that are easier to read and test individually.