在线求byte中bit操作的代码
--------------------编程问答-------------------- 补充:X1、X2、X3的在字节中的定义如下图,这个图我就用语言描述了:X1保存在字节中的(bit7、bit6、bit5)
X2保存在字节中的(bit4、bit3)
X3保存在字节中的(bit2、bit1、bit0) --------------------编程问答-------------------- //将string[]转换成byte[]
byte[] data = System.Text.Encoding.Unicode.GetBytes("");
string str="";
List<byte> result = new List<byte>();
string[] arr= str.Split(new string[] { "." }, StringSplitOptions.RemoveEmptyEntries);
foreach (string item in arr)
{
result.AddRange(BitConverter.GetBytes(uint.Parse(item, System.Globalization.NumberStyles.HexNumber)));
}
result.ToArray(); --------------------编程问答-------------------- 呵呵,再整一个函数:
--------------------编程问答--------------------
/// 传入"1.0.x"版本号,得到符合协议规定的字节数组,第一个字节值为0xFF
/// </summary>
/// <param name="version">版本号(格式:x.x.x)</param>
/// <returns>返回2个字节的数组</returns>
byte[] GetVersionBuffer(string version)
{
byte[] buffer = new byte[2];
buffer[0] = 0xff;
Match m = Regex.Match(version, @"(?i)^(?<n1>\d+)\.(?<n2>\d+)\.(?<n3>\d+)$");
if (m.Success)
{
byte b1 = byte.Parse(m.Groups["n1"].Value);
byte b2 = byte.Parse(m.Groups["n2"].Value);
byte b3 = byte.Parse(m.Groups["n3"].Value);
buffer[1] = (byte)((b1 << 5) | (b2 << 3) | b3);
}
return buffer;
}
+1
补充:.NET技术 , C#