046.进制与位运算(下)

  • 1,567
  • 阅读模式
    <?php
    /*
        46 进制详解    
    */    
    /*
        生活中常用10进制
        计算机常用2进制,8进制,16进制
    */
    //10进制
    echo 123,'<br />';            //从右到左3个位,分别是以1顶1 ,以1顶10,以1顶100;
    echo 1*3+10*2+100*1,'<br />';
    //8进制,前面加8代表8进制;
    echo 0123,'<br />';           //从右到左3个位,分别是以1顶1,以1顶8,以1顶64;
    //16进制,前面加0x代表16进制(1-9,a,b,c,d,e,f)
    echo 0x123,'<br />';          //从右到左3个位,分别是以1顶1,以1顶16,以1顶256;
    //2进制,PHP目前不支持直接表示;
    //从右到左,分别以1顶1,顶2,顶4,顶8....
    /*
        10进制   2进制
        5        0000 0101
        255      1111 1111
        -1       1111 1111
        像上面8个1,到底理解成255,还是理解成-1;
        这个取决于程序;
        比如在mysql中,int理解成-1,unsigned int理解成255;
    */
    /**************************
        46-2  位运算
    ***************************/
    /*
        位运算是针对字节上的位来进行运算;
        把位的0/1当成假/真,针对每个位上的逻辑运算,就是位运算;
        
        10进制     2进制
        5          0000 0101
        12         0000 1100
               -------------
    &             0000 0100
    |             0000 1101
    ^             0000 1001 
    */
    echo 5&13,'<br />';
    echo 5|13,'<br />';
    echo 5^13,'<br />';
    echo ~5,'<br />'; //1111 0101  取反 1111 1010 
    //利用位运算的左移,使整数增大2倍;
    $a = 3;        //3
    echo $a << 1,'<br />';  //6
    ?>

 

weinxin
我的微信
这是我的微信扫一扫
开拓者博主
  • 本文由 发表于 2016年7月22日15:44:37
  • 转载请务必保留本文链接:https://www.150643.com/282.html
匿名

发表评论

匿名网友 填写信息