string转十六进制字符串(HEXString)
string str = "123";
string HexString;
Hexstring = Convert.ToInt32(str).ToString("X");
其中“X”表示大写十六进制,也可以用“x”,表示小写十六进制。
上式输出为HexString = “7B”;
而字符串“1234”转十六进制字符串为“4D2”,我们想要得到“04 D2”这样的形式怎么办呢?只需要在后面加上PadLeft(4,'0'),表示如果不足4字符的话就向左补0
string str = "123";
string HexString;
Hexstring = Convert.ToInt32(str).ToString("X").PadLeft(4, '0');
上式输出为HexString = “04D2”
判断十六进制字符串输入是否正确
public bool IsIncludeChinese(string str)
{
Regex regex = new Regex("[\u4e00-\u9fa5]");
Match m = regex.Match(str);
return m.Success;
}
public const string PATTERN = @"([^A-Fa-f0-9]|\s+?)+";
/// <summary>
/// 判断十六进制字符串hex是否正确
/// </summary>
/// <param name="hex">十六进制字符串</param>
/// <returns>true:不正确,false:正确</returns>
public bool IsIllegalHexadecimal(string hex)
{
return System.Text.RegularExpressions.Regex.IsMatch(hex, PATTERN);
}
十六进制字符串转byte[]
public byte[] HexStringToByteArray(string s)
{
try
{
s = s.Replace(" ", "");
byte[] buffer = new byte[s.Length / 2];
for (int i = 0; i < s.Length; i += 2)
{
buffer[i / 2] = Convert.ToByte(s.Substring(i, 2), 16);
}
return buffer;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "格式错误");
return new byte[1];
}
}
XXX.ToString 格式化数值结果
格式说明符说明示例输出
原文链接:C#中ToString()格式详解 - 美好的明天
说明 | 示例 | 输出 | |
C | 货币 | 2.5.ToString("C") | ¥2.50 |
D | 十进制数 | 25.ToString("D5") | 00025 |
E | 科学型 | 25000.ToString("E") | 2.500000E+005 |
F | 固定点 | 25.ToString("F2") | 25.00 |
G | 常规 | 2.5.ToString("G") | 2.5 |
N | 数字 | 2500000.ToString("N") | 2,500,000.00 |
X | 十六进制 | 255.ToString("X") | FF |
byte[]元素截取
byte[] bts;
byte[] bts1 = new byte[4];
截取bts数组中从第3到第6个元素(即bts[2]~bts[5]),并保存到bts1中:
bts1 = bts.Skip(2).Take(4).ToArray();
string字符串截取
string str;
截取str字符串中第3到第6个字符,并保存到str1中:
string str1 = str.Substring(2,4);