久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

C# 16進(jìn)制與字符串,、字節(jié)數(shù)組之間的轉(zhuǎn)換

 小小243 2013-12-23

1.請(qǐng)問(wèn)c#中如何將十進(jìn)制數(shù)的字符串轉(zhuǎn)化成十六進(jìn)制數(shù)的字符串

//十進(jìn)制轉(zhuǎn)二進(jìn)制
Console.WriteLine("十進(jìn)制166的二進(jìn)制表示: "+Convert.ToString(166, 2));
//十進(jìn)制轉(zhuǎn)八進(jìn)制
Console.WriteLine("十進(jìn)制166的八進(jìn)制表示: "+Convert.ToString(166, 8));
//十進(jìn)制轉(zhuǎn)十六進(jìn)制
Console.WriteLine("十進(jìn)制166的十六進(jìn)制表示: "+Convert.ToString(166, 16));
    
//二進(jìn)制轉(zhuǎn)十進(jìn)制
Console.WriteLine("二進(jìn)制 111101 的十進(jìn)制表示: "+Convert.ToInt32("111101", 2));
//八進(jìn)制轉(zhuǎn)十進(jìn)制
Console.WriteLine("八進(jìn)制 44 的十進(jìn)制表示: "+Convert.ToInt32("44", 8));
//十六進(jìn)制轉(zhuǎn)十進(jìn)制
Console.WriteLine("十六進(jìn)制 CC的十進(jìn)制表示: "+Convert.ToInt32("CC", 16));

2.在串口通訊過(guò)程中,經(jīng)常要用到 16進(jìn)制與字符串,、字節(jié)數(shù)組之間的轉(zhuǎn)換
//

private string StringToHexString(string s,Encoding encode)
        {
            byte[] b = encode.GetBytes(s);//按照指定編碼將string編程字節(jié)數(shù)組
            string result = string.Empty;
            for (int i = 0; i < b.Length; i++)//逐字節(jié)變?yōu)?6進(jìn)制字符,,以%隔開(kāi)
            {
                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];
            //逐個(gè)字符變?yōu)?6進(jìn)制字節(jié)數(shù)據(jù)
            for (int i = 0; i < chars.Length; i++)
            {
                b[i] = Convert.ToByte(chars[i], 16);
            }
            //按照指定編碼將字節(jié)數(shù)組變?yōu)樽址?br>            return encode.GetString(b);
        }

字符串轉(zhuǎn)16進(jìn)制字節(jié)數(shù)組
        /// <summary>
        
/// 字符串轉(zhuǎn)16進(jìn)制字節(jié)數(shù)組
        
/// </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;
         }

字節(jié)數(shù)組轉(zhuǎn)16進(jìn)制字符串
/// <summary>
        
/// 字節(jié)數(shù)組轉(zhuǎn)16進(jìn)制字符串
        
/// </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;
         }

從漢字轉(zhuǎn)換到16進(jìn)制
/// <summary>
        
/// 從漢字轉(zhuǎn)換到16進(jìn)制
        
/// </summary>
        
/// <param name="s"></param>
        
/// <param name="charset">編碼,如"utf-8","gb2312"</param>
        
/// <param name="fenge">是否每字符用逗號(hào)分隔</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();
         }

16進(jìn)制轉(zhuǎn)換成漢字
///<summary>
        
/// 從16進(jìn)制轉(zhuǎn)換成漢字
        
/// </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 轉(zhuǎn)換成 byte 數(shù)組,。 
            byte[] bytes = new byte[hex.Length / 2];

           
for (int i = 0; i < bytes.Length; i++)
            
{
                
try
                
{
                    
// 每?jī)蓚€(gè)字符是一個(gè) 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);
         }

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多