您的位置:首页 > 编程语言 > C#

C#各数据类型转换

2015-11-07 14:25 330 查看
/// <summary>
///
字符串转16进制字节数组

/// </summary>
/// <paramname="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>
/// <paramname="bytes"></param>

///<returns></returns>

public static stringbyteToHexStr(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>
/// <paramname="s"></param>

///<param name="charset">编码,如"utf-8","gb2312"</param>

///<param name="fenge">是否每字符用逗号分隔</param>

///<returns></returns>

public static stringToHex(string s, string charset, bool fenge)

{
if ((s.Length % 2) !=0)

{
s +=" ";//空格

//throw newArgumentException("s is not valid chinese string!");

}
System.Text.Encodingchs = 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>
/// <paramname="hex"></param>

///<param name="charset">编码,如"utf-8","gb2312"</param>

///<returns></returns>

public static stringUnHex(string hex, string charset)

{
if (hex == null)
throw newArgumentNullException("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 = newbyte[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 anexception with custom message.

throw newArgumentException("hex is not a valid hex number!", "hex");
}
}
System.Text.Encodingchs = System.Text.Encoding.GetEncoding(charset);

returnchs.GetString(bytes);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: