public static string IntToString (int value, int toBase, int width, char paddingChar, int flags)
{
StringBuilder sb;
if (value == 0) {
if (width <= 0)
return "0";
sb = new StringBuilder ("0", width);
} else if (toBase == 10)
sb = new StringBuilder (value.ToString ());
else {
byte[] val;
if ((flags & PrintAsI1) != 0) {
val = BitConverter.GetBytes ((byte) value);
} else if ((flags & PrintAsI2) != 0) {
val = BitConverter.GetBytes ((short) value);
} else {
val = BitConverter.GetBytes (value);
}
switch (toBase) {
case 2:
sb = ConvertToBase2 (val);
break;
case 8:
sb = ConvertToBase8 (val);
break;
case 16:
sb = ConvertToBase16 (val);
break;
default:
throw new NotImplementedException ();
}
}
var padding = width - sb.Length;
while (padding > 0) {
sb.Insert (0, paddingChar);
--padding;
}
return sb.ToString ();
}