国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#串口通訊,16進制與字符串、字節數組之間的轉換。

2019-11-17 02:25:18
字體:
來源:轉載
供稿:網友

C#串口通訊,16進制與字符串、字節數組之間的轉換。

Posted on 2015-04-27 14:01 haishu 閱讀(...) 評論(...) 編輯 收藏

1.將十進制數的字符串轉化成十六進制數的字符串

//十進制轉二進制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); }

3.///<summary>///字符串轉16進制字節數組///</summary>///<param name="hexString"></param>///<returns></returns>privatestaticbyte[] strToToHexByte(stringhexString){ hexString=hexString.Replace("","");if((hexString.Length%2)!=0) hexString+="";byte[] returnBytes=newbyte[hexString.Length/2];for(inti=0; i<returnBytes.Length; i++) returnBytes[i]=Convert.ToByte(hexString.Substring(i*2,2),16);returnreturnBytes; }

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

///<summary>///從漢字轉換到16進制///</summary>///<param name="s"></param>///<param name="charset">編碼,如"utf-8","gb2312"</param>///<param name="fenge">是否每字符用逗號分隔</param>///<returns></returns>publicstaticstringToHex(strings,stringcharset,boolfenge){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);stringstr="";for(inti=0; i<bytes.Length; i++){ str+=string.Format("{0:X}", bytes[i]);if(fenge&&(i!=bytes.Length-1)){ str+=string.Format("{0}",","); } }returnstr.ToLower(); }

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南城县| 石台县| 阿巴嘎旗| 克拉玛依市| 吉隆县| 海林市| 宜昌市| 峡江县| 彭水| 关岭| 泗水县| 通山县| 阿拉善左旗| 教育| 巴东县| 运城市| 江安县| 江北区| 肥西县| 鲁甸县| 乌鲁木齐县| 晋宁县| 古蔺县| 宜丰县| 鄱阳县| 台中县| 边坝县| 镇康县| 大埔区| 绥棱县| 响水县| 西华县| 麻栗坡县| 炉霍县| 绥江县| 白山市| 晋州市| 济宁市| 灯塔市| 丰镇市| 北安市|