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#如何解析和写入这两个数据项? 展开
 我来答
lgao622
2015-06-07 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6550
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部
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();
        }
 
    }
}
百度网友998ec8b
2015-06-07 · TA获得超过234个赞
知道答主
回答量:99
采纳率:0%
帮助的人:82.6万
展开全部
最小都是按字节的读取。你的数据是2字节的,要解析这些数,先确认高位在前还是低位在前,是否有符号位,然后可以后用掩码、移位的方法取出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式