C#里的进制与ASCII转换

            //进制转换
            int16 = 0x41;
            int10 = Convert.ToInt32(int16);
            Console.WriteLine("16进制int -> 10进制:" + int10.ToString());

            str = Convert.ToString(int10, 16);
            Console.WriteLine("10进制int -> 16进制:" + str);

            str = Convert.ToString(int10, 2);
            Console.WriteLine("10进制int -> 2进制:" + str);

            str = "41";
            int10 = Convert.ToInt32(str, 16);
            Console.WriteLine("16进制string -> 10进制:" + int10.ToString());

            str = "1000001";
            int10 = Convert.ToInt32(str, 2);
            Console.WriteLine("2进制string -> 10进制:" + int10.ToString());

            //ASCII转换
            int10 = 65;
            ascii = ((char) int10).ToString();
            Console.WriteLine("10进制int -> ASCII字符:" + ascii);

            int16 = 0x41;
            int10 = Convert.ToInt32(int16); // 16进制->10进制
            bytes = System.BitConverter.GetBytes(int10); //int->byte[]
            ascii = System.Text.Encoding.ASCII.GetString(bytes);   //byte[]-> ASCII
            Console.WriteLine("16进制int -> ASCII字符:" + ascii);

            byte16 = 0x41;
            ascii = ((char) byte16).ToString();
            Console.WriteLine("16进制byte -> ASCII字符:" + ascii);

            ascii = "ABC";
            str = "";
            size = ascii.Length;
            for (index = 0; index < size; index++)
            {
                int10 = (int)Convert.ToChar(ascii.Substring(index, 1));
                sb.Append(int10.ToString());
                sb.Append(" ");
            }
            str = sb.ToString();
            Console.WriteLine("ASCII字符串 -> 10进制:" + str);
            sb.Clear();

            ascii = "ABC";
            bytes = System.Text.ASCIIEncoding.Default.GetBytes(ascii);
            foreach (byte b in bytes)
            {
                sb.Append(b.ToString("x"));
                sb.Append(" ");
            }
            str = sb.ToString();
            Console.WriteLine("ASCII字符串 -> 16进制:" + str);
            sb.Clear();
            
            str = "414243";
            size = str.Length;
            sb =new StringBuilder();
            for (index = 0; index < size; index += 2)
            {
                sb.Append(((char) Convert.ToByte(str.Substring(index, 2), 16)).ToString());
            }
            Console.WriteLine("16进制string -> ASCII字符串:" + sb.ToString());
        //16进制字符串 -> byte[]
        public static byte[] HexToByte(string hexString)
        {
            var length = hexString.Length / 2;
            var returnBytes = new byte[length];
            for (var index = 0; index < length; index++)
            {
                returnBytes[index] = Convert.ToByte(hexString.Substring(index * 2, 2), 16);
            }
            return returnBytes;
        }

        //byte[] -> 16进制字符串
        public static String ByteArrayToHexStr(Byte[] byteArray)
        {
            var hexStr = String.Empty;
            if (byteArray != null)
            {
                var strBuilder = new StringBuilder();
                var length = byteArray.Length;
                for (var index = 0; index < length; index++)
                {
                    strBuilder.Append(byteArray[index].ToString("X2"));
                }
                hexStr = strBuilder.ToString();
            }
            return hexStr;
        }


 代码下载地址: 
http://download.csdn.net/detail/index_cqq/9477085
                
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值