当前位置:编程学习 > C#/ASP.NET >>

在线求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;
}
--------------------编程问答--------------------
引用 2 楼 wuyq11 的回复:
//将string[]转换成byte[]
byte[] data = System.Text.Encoding.Unicode.GetBytes("");
string str="";
List<byte> result = new List<byte>();
string[] arr= str.Split(new string[] { "." }, StringSplitOptions.……

+1
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,