zoukankan      html  css  js  c++  java
  • [PHP][位转换积累]之与运算截取二进制流的值

    function getBit( $num, $bit, $mask ){
        return $num>>$bit&$mask;
    }
    var_dump( getBit( 41, 3, 7 ) );
    var_dump( getBit( 0x29, 0x0, 0xf ) ); //十六进制表示法同样适用
    

    此函数适合大端序的二进制流

    取十进制数$num的第$bit位起至$mask位,返回值是十进制数

    原理,把$num左移动至$bit位,然后跟$mask相与,得到的就是掩码掩住的几位二进制数,例如(也就是0000 1010),取9的第2至第4位(101,也就是十进制数5),先右移动1位,然后跟7(也就是0000 0111)相与,然后得到5(101)这个数,因为相与的位,只有双方都为1的时候才等于1,只有一方为0都等于0,所以掩码必须为左起连贯的1的二进制数, 例如0000 1111,0000 0111

  • 相关阅读:
    1. flask框架-简介/快速启动
    conda创建、查看、删除虚拟环境
    DOM用法(二)
    DOM用法(一)
    BOM用法
    Javascript对象
    JavaScript基础篇
    mysql 外连接
    mysql 连接表 内连接 inner
    mysql分组函数
  • 原文地址:https://www.cnblogs.com/yiyide266/p/5566452.html
Copyright © 2011-2022 走看看