C#中进制间的转换要借助Convert类的两个方法:
1.ToString(int32 value, int32 base):将 32 位带符号整数的值转换为其指定基的等效字符串表示形式。简单的理解就是将base指定的值(2,8,10,16)它们代表进制,转换成相对应的值。
2.ToInt32(string value,int32 base):将指定基数的数字的字符串表示形式转换为等效的 32 位有符号整数。总之与上面讲到ToString方法完全相反就是啦!
下面放几小示例演示一下:
1: Tostring方法,将十进制转换成二,八,十,十六进制
Console.Write("请输入要转换的值:");
int num = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Value:" + num.ToString() + " 转换为二进制 " + Convert.ToString(num, 2));
Console.WriteLine("Value:" + num.ToString() + " 转换为八进制 " + Convert.ToString(num, 8));
Console.WriteLine("Value:" + num.ToString() + " 转换为十进制 " + Convert.ToString(num, 10));
Console.WriteLine("Value:" + num.ToString() + " 转换为十六进制 " + Convert.ToString(num, 16));
过程很简单就输入一个值,将它依次转换成2,8,10,16进制的值,不多讲解。
2: ToInt32方法,将2,8,10,16进制转换成10进制
Console.WriteLine("2,8,10,16进制与10进制间相互转换,按Q键退出");
Console.Write("请输入二进制值:");
string inputValue = Console.ReadLine();
while (inputValue.ToUpper() != "Q")
{
Console.WriteLine("Value:" + inputValue + " 二进制转换为十进制 " + Convert.ToInt32(inputValue, 2));
Console.Write("请输入八进制值:");
inputValue = Console.ReadLine();
if (inputValue == "q") break;
Console.WriteLine("Value:" + inputValue + " 八进制转换为十进制 " + Convert.ToInt32(inputValue, 8));
Console.Write("请输入十进制值:");
inputValue = Console.ReadLine();
if (inputValue == "q") break;
Console.WriteLine("Value:" + inputValue + " 十进制转换为十进制 " + Convert.ToInt32(inputValue, 10));
Console.Write("请输入十六进制值:");
inputValue = Console.ReadLine();
if (inputValue == "q") break;
Console.WriteLine("Value:" + inputValue + " 十六进制转换为十进制 " + Convert.ToInt32(inputValue, 16));
Console.Write("请输入二进制值:");
inputValue = Console.ReadLine();
}
Console.WriteLine("程序已经退出........");
在控制台输入提示的进制值,做一个相应的2,8,10,16进制的转换,输入Q退出程序,也不难理解
3.其它进制的相互转换(比如:二进制转换成八进制)
思路:用十进制做中转,来实现二进制与八进制的转换,还是用实例来演示说明
string stringBinary = "10000";
int intTen = Convert.ToInt32(stringBinary, 2);//16
string stringOctal = Convert.ToString(intTen,8);//20
Console.WriteLine("二进制:"+stringBinary+"转为八进制:"+stringOctal);
结束:进制转换利用的就是Convert的两个方法来实现互转,蛮好的,简单且方便。就写到这