C#如何按位(bit)存取数据?
一个数据字的长度为2Byte(16bit),表示为B15-B08B07-B00,其中B00-B11共12位表示数据项F1,B12-B15共4位表示数据项F2,请问用C#如...
一个数据字的长度为2Byte(16bit),表示为 B15-B08 B07-B00,其中B00-B11共12位表示数据项F1,B12-B15共4位表示数据项F2,请问用C#如何解析和写入这两个数据项?
展开
2个回答
2015-06-07 · 知道合伙人软件行家
关注
展开全部
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security.Policy;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace Temp
{
class Program
{
public ushort Num;
public int F1
{
get { return Num & 0x0FFF; }
set { Num |= (ushort)(value & 0x0FFF); }
}
public int F2
{
get { return (Num & 0xF000) >> 12; }
set { Num |= (ushort)(value << 12); }
}
static void Main(string[] args)
{
Program p = new Program();
p.Num = 0x3123;
Console.WriteLine("F1: {0}; F2: {1}", Convert.ToString(p.F1, 16), Convert.ToString(p.F2, 16));
p.Num = 0;
p.F1 = 0x234;
p.F2 = 0x04;
Console.WriteLine("Num: {0}", Convert.ToString(p.Num, 16));
Console.ReadKey();
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询