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);//
        } 
原创粉丝点击