Is decimal, hexadecimal, octadecimal, binary converter efficient?
Disclaimer: I'm new here, so this might not be the type of review people give, but I'm trying to match it as best as I can.

Formatting

A comment explaining the purpose of combineResults(String a, String b) next to the method would be helpful.  (Yes, there's one in the main method, but documentation next to the helpers is good, too.)  

The same could be said for numConverter(int number)...

Other than that, indentation looks good, braces look fine, etc.  :)

Algorithm

In general: You should be passing around StringBuilders or StringBuffers (or chars) instead of Strings.  The former are mutable, while the latter isn't mutable.  This will save some performance.  (e.g. appending is better on memory with the builders and buffers, rather than with raw Strings.)

Main Algorithm

Ok...  You took kinda an odd approach to converting bases.  Rather than using all those while loops, you should focus on determining the next least significant digit by using the modulus operator followed by division.

For example, in pseudocode:

while(number &gt; 0) {
  nextDigit = number % base; //Get the next digit using modulo
  number /= base; 
  // prepend nextDigit to result String Buffer
}


This makes the combineResults() method unneeded, as prepend is built-in to the StringBuilder.

NumConverter

In the spirit of StringBuilders vs. String, this should return a char rather than a String.

Your current code assumes that the only number ever fed to this method will be less than 16.  This could be a problem if it's a larger library, or if you want to expand the bases to more than hexadecimal.

You could use a switch/case construct instead of the else if's... 

Or, if you really want to shorten the code, you could do something like (note: this also implements the char return instead of String):

char numConverter(int digit) {
   if (num &gt;= 16 || num &lt; 0) //If we're not given a valid digit
     return 0; //Let the output know somehow...  could throw an exception instead.
   else if (digit &lt;= 10) //If we're dealing with a "normal" digit
     return ((char)num + '0'); //... return the numeric equivalent
   else //We're in extended digit range: we need letters!
     return ((char)digit + 'A' - 10); //Return hex equivalent of 10-15 (A-F)
}