C#数制转换
*栈(stack)、数制转换
***记得点赞哦 ***
//十进制->十六进制
public static void Main(string[] args)
{
int n = 123;
Stack<int> s = new Stack<int>(20);
Console.Write("十进制数:{0} -> 十六进制 :", n);
while (n > 0)
{
s.Push(n % 16);
n = n / 16;
}
while (s.Count != 0)
{
int e = s.Peek();
s.Pop();
if (e <= 9)
{
Console.Write(e);
}
else
{
Console.Write((char)(e + 55));
}
}
}
推广
//10->8 . 10->16
public static void Main(string[] args)
{
int n = 123;
int d=16;//此处d即为可修改的目标进制数
Stack<int> s = new Stack<int>(20);
Console.Write("十进制数:{0} -> {1}进制 :", n,d);
while (n > 0)
{
s.Push(n % d);
n = n / d;
}
while (s.Count != 0)
{
int e = s.Peek();
s.Pop();
if (e <= 9)
{
Console.Write(e);
}
else
{
Console.Write((char)(e + 55));
}
}
}
其实还有一种写法,但是大体上差不多
//csharp
public static void Main(string[] args)
{
int n = 123;
int d=16;
Stack s = new Stack(20);
Console.Write(“十进制数:{0} -> {1}进制 :”, n,d);
while (n != 0)
{
s.Push(n % d);
n = n / d;
}
int i=s.Count;
while(i>0)
{
Console.Write("{0:x},s.Pop());
i–
}
Console.WriteLine();
}
记得点赞哦o