Start by taking a close look at:
Then consider what you are actually doing here:
public string FindBinaryValue(uint a)
var st = Convert.ToString(a, 2);
return st.PadLeft(8, '0');
is a binary representation of the value, what you return is not, it's a string.
It looks like you are implementing the Quicksort
] in c#, and by converting
to a string you're making a very big "O".