Mọi người có thể giải thích giúp em đoạn code này được không ạ, em đọc trên trang tiếng anh về bài chuyển đổi cơ số bằng stack nhưng em không hiểu đoạn code này cho lắm em chạy thử thì thấy nó chuyển được từ hệ 10 sang hết các hệ luôn ạ
static string Convert(int number, int @base)
{
var digits = new Stack<string>();
do
{
var d = number % @base;
if (d >= 10 && d <= 15 && @base == 16)
{
var hex = string.Empty;
switch (d)
{
case 10: hex = "A"; break;
case 11: hex = "B"; break;
case 12: hex = "C"; break;
case 13: hex = "D"; break;
case 14: hex = "E"; break;
case 15: hex = "F"; break;
}
digits.Push(hex);
}
else
digits.Push(d.ToString());
number /= @base;
} while (number != 0);
var sb = new StringBuilder();
while (digits.Count > 0)
sb.Append(digits.Pop());
return sb.ToString();
}