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

  • 相关阅读:
    消息路由的构成
    消息的构造
    消息传递通道
    消息传递系统
    EXtJS Ext.data.Model
    oracle coherence介绍及使用
    LINUX下安装和配置WEBLOGIC10.0.3
    WebLogic中"域"的概念
    WebLogic中的一些基本概念
    下属有能力却不服管,你该怎么办?
  • 原文地址:https://www.cnblogs.com/wa502/p/14679936.html
Copyright © 2011-2022 走看看