zoukankan      html  css  js  c++  java
  • 基本运算符 与运算 和 左移操作符

    接收到的16进制信息:data.MainData =

    01-21-0f-07-07-03-00-08-09-01-07-07-07-06-03-05-06-08-00-00-00-00-00-00-00-00-00-01-00-00-00-00-01-7a-09-0a-0b-0c-64-00-95

    var number = (data.MainData[0] & 0xff) << 8 | (data.MainData[1] & 0xff);
    data.MainData[0]:01
    0xff:1111 1111
    &:二进制与计算,表示data.MainData[0]的2进制和16进制0xff的2进制进行与运算,
      与运算就是:上下两个都是1,则结果为1,否则为0
    01的2进制: 0000 0001
    0xff的2进制:1111 1111
    结果: 0000 0001
    << 8:左移操作符,将0000 0001整体向左移动8位,空位补0
    结果:0000 0000 = 0
    但是:data.MainData[0] & 0xff 是表达式的值,结果已经是变量的值了
    表达式是运算中的值:左移相当于乘,左移n位相当于乘2的n次方
    所以:0000 0001 << 8 结果=256,如果表达式是0000 0001 <<= 8,就是变量的值,结果=0

    同理:data.MainData[1] & 0xff
    ==            2      1
    即         0010 0001
    &           1111 1111
    结果:  0010 0001 = 33

  • 相关阅读:
    WordCount的程序设计没写出来怎么办
    小程序分析
    程序单元测试
    Visual studio 2013安装
    四则运算源代码
    在VC环境下执行代码出现错误
    微点评微信软件
    软件工程学习
    查找抄袭文章
    软件附加题简答
  • 原文地址:https://www.cnblogs.com/wa502/p/14679936.html
Copyright © 2011-2022 走看看