免费男女视频_国产系列 视频二区_羞羞视频免费入口网站_久国久产久精永久网页_国产免费观看av_一区二区三区日韩在线观看

C# 16进制与字符串、字节数组之间的转换

1.請問c#中如何將十進制數的字符串轉化成十六進制數的字符串
//十進制轉二進制
Console.WriteLine("十進制166的二進制表示: "+Convert.ToString(166, 2));
//十進制轉八進制
Console.WriteLine("十進制166的八進制表示: "+Convert.ToString(166, 8));
//十進制轉十六進制
Console.WriteLine("十進制166的十六進制表示: "+Convert.ToString(166, 16));
    
//二進制轉十進制
Console.WriteLine("二進制 111101 的十進制表示: "+Convert.ToInt32("111101", 2));
//八進制轉十進制
Console.WriteLine("八進制 44 的十進制表示: "+Convert.ToInt32("44", 8));
//十六進制轉十進制
Console.WriteLine("十六進制 CC的十進制表示: "+Convert.ToInt32("CC", 16));

2.在串口通訊過程中,經常要用到 16進制與字符串、字節數組之間的轉換
//

private string StringToHexString(string s,Encoding encode)
        {
            byte[] b = encode.GetBytes(s);//按照指定編碼將string編程字節數組
            string result = string.Empty;
            for (int i = 0; i < b.Length; i++)//逐字節變為16進制字符,以%隔開
            {
                result += "%"+Convert.ToString(b[i], 16);
            }
            return result;
        }
        private string HexStringToString(string hs, Encoding encode)
        {
            //以%分割字符串,并去掉空字符
            string[] chars = hs.Split(new char[]{'%'},StringSplitOptions.RemoveEmptyEntries);
            byte[] b = new byte[chars.Length];
            //逐個字符變為16進制字節數據
            for (int i = 0; i < chars.Length; i++)
            {
                b[i] = Convert.ToByte(chars[i], 16);
            }
            //按照指定編碼將字節數組變為字符串
            return encode.GetString(b);
        }

 


        /// <summary>
        
/// 字符串轉16進制字節數組
        
/// </summary>
       
/// <param name="hexString"></param>
        
/// <returns></returns>
        private static byte[] strToToHexByte(string hexString)
        {
             hexString = hexString.Replace(" """);
           if ((hexString.Length % 2) != 0)
                 hexString += " ";
            byte[] returnBytes = new byte[hexString.Length / 2];
            for (int i = 0; i < returnBytes.Length; i++)
                returnBytes[i] = Convert.ToByte(hexString.Substring(i * 22), 16);
            return returnBytes;
         }

 

 


/// <summary>
        
/// 字節數組轉16進制字符串
        
/// </summary>
        
/// <param name="bytes"></param>
        
/// <returns></returns>
        public static string byteToHexStr(byte[] bytes)
       {
            string returnStr = "";
            if (bytes != null)
            {
                for (int i = 0; i < bytes.Length; i++)
                {
                     returnStr += bytes[i].ToString("X2");
                 }
             }
            return returnStr;
         }

 

 


/// <summary>
        
/// 從漢字轉換到16進制
        
/// </summary>
        
/// <param name="s"></param>
        
/// <param name="charset">編碼,如"utf-8","gb2312"</param>
        
/// <param name="fenge">是否每字符用逗號分隔</param>
       
/// <returns></returns>
        public static string ToHex(string s, string charset, bool fenge)
        {
            if ((s.Length % 2) != 0)
            {
                 s += " ";//空格
                
//throw new ArgumentException("s is not valid chinese string!");
             }
             System.Text.Encoding chs = System.Text.Encoding.GetEncoding(charset);
            byte[] bytes = chs.GetBytes(s);
            string str = "";
            for (int i = 0; i < bytes.Length; i++)
            {
                str += string.Format("{0:X}", bytes[i]);
                if (fenge && (i != bytes.Length - 1))
                {
                     str += string.Format("{0}"",");
                 }
             }
            return str.ToLower();
         }

 

 


///<summary>
        
/// 從16進制轉換成漢字
        
/// </summary>
        
/// <param name="hex"></param>
        
/// <param name="charset">編碼,如"utf-8","gb2312"</param>
       
/// <returns></returns>
        public static string UnHex(string hex, string charset)
        {
           if (hex == null)
                throw new ArgumentNullException("hex");
             hex = hex.Replace(",""");
             hex = hex.Replace("\n""");
             hex = hex.Replace("\\""");
             hex = hex.Replace(" """);
            if (hex.Length % 2 != 0)
            {
                 hex += "20";//空格
             }
            // 需要將 hex 轉換成 byte 數組。 
            byte[] bytes = new byte[hex.Length / 2];
           for (int i = 0; i < bytes.Length; i++)
            {
                try
                {
                    // 每兩個字符是一個 byte。 
                     bytes[i] = byte.Parse(hex.Substring(i * 22),
                     System.Globalization.NumberStyles.HexNumber);
                 }
                catch
                {
                    // Rethrow an exception with custom message. 
                    throw new ArgumentException("hex is not a valid hex number!""hex");
                 }
             }
             System.Text.Encoding chs = System.Text.Encoding.GetEncoding(charset);
            return chs.GetString(bytes);
         }

主站蜘蛛池模板: 91av大片 | 性高跟鞋xxxxhd4kvideos| 麻豆传传媒久久久爱 | 成人福利电影在线观看 | 国产69精品久久久久99尤 | 欧美一级做一级爱a做片性 91在线视频观看 | 91av网址| 国产一国产精品一级毛片 | lutube成人福利在线观看 | 91在线色| 久久99精品久久久久久秒播放器 | 成人精品视频在线 | 日产精品久久久一区二区开放时间 | 国内精品久久久久久久久久 | 国产午夜免费不卡精品理论片 | 亚洲第一精品在线 | 99re久久最新地址获取 | 吾色视频 | 精品国产91久久久久久久妲己 | 毛片在哪看 | 色中色在线视频 | 久久久一区二区三区四区 | 国产精品一区2区3区 | 国产精品视频一区二区三区四区国 | 在线成人精品视频 | 亚洲国产精品久久久久久久 | 网站激情 | 午夜噜噜噜 | h色网站在线观看 | 久国产精品视频 | 黄色网电影 | 亚洲精品一区二区三区在线看 | 欧美乱论 | 91精品国产91 | 最新欧美精品一区二区三区 | 在线亚洲欧美 | 日本不卡一二三区 | 国产欧美在线一区二区三区 | 久久丝袜脚交足黄网站免费 | 国产色爱综合网 | 久久99精品久久 |