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

首頁 > 編程 > C# > 正文

C# 16進制與字符串、字節數組之間的轉換

2019-10-29 21:48:31
字體:
來源:轉載
供稿:網友
在串口通訊過程中,經常要用到 16進制與字符串、字節數組之間的轉換
 
 

 

復制代碼代碼如下:

/// <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 * 2, 2), 16); 
return returnBytes; 

字節數組轉16進制字符串 
/// <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; 

從漢字轉換到16進制 
/// <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(); 

16進制轉換成漢字 
///<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 * 2, 2), 
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); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 娄烦县| 温宿县| 驻马店市| 广西| 兴山县| 巴中市| 基隆市| 桃源县| 宁化县| 沁源县| 迁安市| 牟定县| 酒泉市| 巩留县| 内丘县| 盐城市| 宿迁市| 大化| 颍上县| 太和县| 咸宁市| 临安市| 皮山县| 鹤岗市| 永顺县| 开江县| 宁晋县| 吴江市| 三都| 乌苏市| 海丰县| 太保市| 闸北区| 玛纳斯县| 玉溪市| 津市市| 陇川县| 靖边县| 阳泉市| 延津县| 安化县|