高低位的理解:

起因:

一个元器件,给我的发的数据是高低位,两个寄存器。

迷茫的点:我怎么把这个高低位合并成一个数值?应该怎么合?怎么理解?

理解:高低16位,如下:

0000 0000 0000 0000 0000 0000 0000 0000 

比如:int light=2;   int low=5;

合并的话,高位必须左移16位:light=light<<16;

低位16位=5,即int result=low | light(有1即为1)  或者是 result=low+light;

这就是我们得到的数值,就是这样合并的。

当我们要分别写入寄存器的时候,我们需要这样操作:

 //当我们需要将数据做成高低位写进寄存器的操作
            int hight_2 = 131072;
            int low_2 = 5;
            hight_2 = hight_2 >> 16;
            Console.WriteLine("当前高位数据右移16位后得到的数据为:"+hight_2);
            int res2 = 0xFFFF & low_2;//低位与1与,都为1时才为1
            Console.WriteLine("得到的低位数据为:"+res2);

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值