美文网首页
byte解析,取高位与低位

byte解析,取高位与低位

作者: 花漫旧城夏天 | 来源:发表于2021-01-27 15:47 被阅读0次

    一个byte由8个二进制位构成1个字节,即1Byte=8Bit

    其中左边是高位,右边是低位。

    high_four = (byte & 0xf0) >> 4;  (0xf0=11110000)

    low_four = byte & 0x0f;   (0x0f=00001111)

    0&1=0,1&1=1。所以byte&0x0f就是byte&00001111。不管byte的高四位是多少,&上0x0f的高四位(0000)之后,都是0。不管

    byte的低四位是多少,&上0x0f的低四位(1111)之后,都会保存原值。

    比如byte是11010111。byte的高四位是1101。&上0x0f的高四位0000之后,得到的值是0000。因为1&0=0,0&0也等于0。

    byte的低四位是0111。&上0x0f的低四位1111之后,得到的值是0111。也就是原来的值。所以11010111&0x0f就是00000111。也就是把byte

    的高四位变成0,低四位保持原值。所以取低四位的值就是byte&0x0f。

    要取得byte的高四位。就是byte & 0xf0也就是11010111&11110000=11010000。然后再右移四位。变成1101。

    (通过debug发现。如果右移的数据里面都是0的话,比如11010000右移四位数,就是右移了4个0。那么,左边就会补0变成了00001101。

    如果11010111没有&11110000就直接右移4位的话,会变成1101.但是前面补位的变成了1。所以不是00001101而是11111101)

    相关文章

      网友评论

          本文标题:byte解析,取高位与低位

          本文链接:https://www.haomeiwen.com/subject/fvkazktx.html