C#数字进制间与字符串类型相互转换
来源:互联网 发布:怎么和淘宝客服聊天 编辑:程序博客网 时间:2024/05/18 01:29
// 数字二,八,十,十六进制转字符串string strResult;strResult = Convert.ToString(253, 2);// 結果:11111101 strResult = Convert.ToString(253, 8);// 結果:375 strResult = Convert.ToString(253, 10);// 結果:253 strResult = Convert.ToString(253, 16);// 結果:fd // 字符串转数字二,八,十,十六进制int intResult;intResult = Convert.ToInt32("11111101", 2);// 結果:253 intResult = Convert.ToInt32("375", 8);// 結果:253 intResult = Convert.ToInt32("253", 10);// 結果:253 intResult = Convert.ToInt32("fd", 16);// 結果:253//十进制转二进制Console.WriteLine(Convert.ToString(69, 2));//十进制转八进制Console.WriteLine(Convert.ToString(69, 8));//十进制转十六进制Console.WriteLine(Convert.ToString(69, 16));//二进制转十进制Console.WriteLine(Convert.ToInt32("100111101", 2));//八进制转十进制Console.WriteLine(Convert.ToInt32("76", 8));//十六进制转十进制Console.WriteLine(Convert.ToInt32("FF", 16));
/// <summary>
/// 十六进制字符串转换为十进制数字
/// </summary>
/// <param name="hexStr"></param>
/// <returns></returns>
private static long HexStr2Dec(string hexStr)
{
char[] hexCharList = hexStr.ToCharArray();
long result = 0;
for (int i = 0; i < hexCharList.Length; i++)
{
result += HexChar2Dec(hexCharList[hexCharList.Length - 1 - i]) * Power(16, i);
}
return result;
}
/// <summary>
/// 十六进制字符转换为十进制数字
/// </summary>
private static long HexChar2Dec(char hexChar)
{
switch (hexChar)
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
return Convert.ToInt64(hexChar);
case 'A':
return 10;
case 'B':
return 11;
case 'C':
return 12;
case 'D':
return 13;
case 'E':
return 14;
case 'F':
return 15;
default:
throw new Exception("该字符不是十六进制字符");
}
}
/// <summary>
/// 乘方x^y
/// </summary>
private static long Power(int x, int y)
{
long result = 1;
for (int i = 0; i < y; i++)
{
result *= x;
}
return result;
}
private void button1_Click(object sender, EventArgs e)
{
string hexStr = "F"; //
long result = HexStr2Dec(hexStr);
label1.Text = Convert.ToString(result, 16);//
}