zoukankan      html  css  js  c++  java
  • 位移操作 高位移向地位、设置或修改任意位数的值。

    ①buf[nPackLen++] = (BYTE)( m_dwIDCode >> 24);m_dwIDCode 有四个字节,一共32位,移动24位,就是把高字节移向低字节。(BYTE)截取一个字节;
    ②buf[nPackLen++] = (BYTE)( m_dwIDCode >> 16);
    ③buf[nPackLen++] = (BYTE)( m_dwIDCode >> 8);
    ④buf[nPackLen++] = (BYTE)( m_dwIDCode);

    m_dwIDCode 有四个字节,如下面;

    a b c d 

    ①:移动24位,得到结果 0000000 a,用(BYTE)截取一个字节,以为BYTE占一个自己,如果是unshort 的话,就是2字节;

    ②移动16位,得到结果 o o a b ,用(BYTE)截取一个字节,得到b.

    ③ 移动8位 得到结果 0 a b c ,用(BYTE)截取一个字节,得到c

    ④。直接用(BYTE)截取一个字节,得到低字节。d;

    按位与可以有两种作用:

    (1)清零。如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。

    (2)取一个数中指定位

    方法:找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。

    例:设X=10101110,

        取X的低4位,用 X & 0000 1111 = 0000 1110 即可得到;

        还可用来 取X的2、4、6位。

    低字节在前的数据的处理:

    BYTE  byInfoBuf[2];//获取后的数据时低字节在前的;

    int fno = CP5200_ParseOpenFileRet( hObj , byRecvBuf , nReadLen , byInfoBuf , sizeof(byInfoBuf) );

    WORD dno = byInfoBuf[0] + (byInfoBuf[1]<<8);//因为byInfoBuf[1] 是高字节,所有向左移动一个字节,也就是8为,加上 byInfoBuf[0],就是原来的值。

    比如  byInfoBuf[0] = 00000001;

       byInfoBuf[1] = 00000100;

    byInfoBuf[1]<<8 = 00000100 00000000;

    加上  byInfoBuf[0]                  00000001

    就得到                  00000100  00000001

     ***********************************************************************************************************************

    设置、查询、任意位数的值;

    1.如果要查询任意一位的值:

    BYTE bydata =0x05;

    如果要查询第三位的值;

    首先要判断第三位的值是0或者是1;

    BYTE temp = bydata&0000100//也就是  bydata&0x04;

    if(temp>0)//表明第三位是1;

    {

      bydata = bydata&11111011//这是第三位的值变为0,其它的值不变;

    }

     else//表明第三位是1

    {

    }

     2.修改任意位的值

    想修改第3位的值为0;

    bydata = bydata&11111011//这样不管第三位原来的值是1或者是0,现在第三位的值一定是0;

    想修改第3位的值为1;

    bydata = bydata|00000100//这样不管第三位原来的值是1或者是0,现在第三位的值一定是1;

     如果想把第二位改为1;

    过程就是这个样子

    bydata = bydata|00000010//这样不管第2位原来的值是1或者是0,现在第三位的值一定是1;

  • 相关阅读:
    常见逻辑谬误
    4 WPF依赖属性
    11 WPF样式和行为
    17 WPF控件模板
    3 WPF布局
    4.6.3 The LRParsing Algorithm
    4.6 Introduction to LR Parsing: Simple LR
    19 WPF 数据绑定
    分布式系统部署、监控与进程管理的几重境界
    运维知识体系
  • 原文地址:https://www.cnblogs.com/chenzuoyou/p/3135359.html
Copyright © 2011-2022 走看看