本帖最后由 gmowcey 于 2012-06-05 11:50:25 编辑

解决方案 »

  1.   

    bt & 0xf0  按位与
    (bt & 0xf0) >> 4 二进制右移四位 相当于除以16
    HEX_DIGITS[bt & 0xf]  取得对应下标的值 
      

  2.   

    bt & 0xf0 就是保留bt的高4位, 0xf0就是二进制 11110000, bt跟11110000作&运算,低4位就被清掉,只留下高4位
    比如bt的二进制是 01011111,和 0xf0进行&运算,就是 01011111 & 11110000 = 01010000(二进制的&运算LZ应该懂得吧)(bt & 0xf0) >> 4 就是保留bt的高4位,并右移4位,也就是把bt的高4位移到低4位HEX_DIGITS[bt & 0xf]  就是bt & 0xf 的结果作为数组的下标,取HEX_DIGITS数组的元素,bt & 0xf就是取bt的低4位,0xf的二进制是00001111,bt跟00001111作&运算,高4位被清空,保留低4位