乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      PHP的位運(yùn)算

       Ralf_Jones 2005-12-29
      位運(yùn)算??? (http://club./showthread.php?t=5386)
      zww23 2004年06月19日 10:32 AM

      位運(yùn)算???
       
      <?php
      echo "位運(yùn)算符的例子!<br>\n";
      $a=5; //用二進(jìn)制表示a=101;
      $b=2; //用二進(jìn)制表示b=010;
      $c=$a&$b; //與運(yùn)算
      echo "a & b = ".$c." (101 & 010)<br>\n";
      $c=$a|$b; //或運(yùn)算
      echo "a | b = ".$c." (101 | 010)<br>\n";
      $c=~$a; //非運(yùn)算〖〗
      echo "~a = ".$c." (~101)<br>\n";
      $c=$a^$b; //異或運(yùn)算
      echo "a ^ b = ".$c." (101 ^ 010)<br>\n";
      $c=$a<<$b; //向左移位運(yùn)算
      echo "a << b = ".$c." (101 << 010)<br>\n";
      $c=$a>>$b; //向右移位運(yùn)算
      echo "a >> b = ".$c." (101 >> 010)";
      php?>


      運(yùn)算結(jié)果是

      位運(yùn)算符的例子!
      a & b = 0 (101 & 010)
      a | b = 7 (101 | 010)
      ~a = -6 (~101)
      a ^ b = 7 (101 ^ 010)
      a << b = 20 (101 << 010)
      a >> b = 1 (101 >> 010)

      我想知道~a = -6 (~101) ,a << b = 20 (101 << 010)和a >> b = 1 (101 >> 010)的運(yùn)算結(jié)果是怎樣得出來(lái)的?

      Cplus 2004年06月19日 07:41 PM

      ~0=-1;~1=-2......~5=-6 就這樣記下吧

      101<<010 表示把101右移010(2)位,于是就成了10100=20

      101>>010 表示把101左移010(2)位,于是就成了1=1。

      Sorehead 2004年06月20日 05:12 PM

        做位運(yùn)算不能只孤立的將要運(yùn)算的數(shù)字的位數(shù)加以考慮,而必須從PHP是如何保存整型的,從PHP保存整型的字長(zhǎng)整體來(lái)考慮。舉例:像上面的a和b之間的運(yùn)算,就不能只拿前三位來(lái)計(jì)算,雖然他們用三位就可以表示了。
        PHP 不支持無(wú)符號(hào)整數(shù),其整型數(shù)的字長(zhǎng)和平臺(tái)有關(guān),一般是采用32 位來(lái)表示。注意這里提供的信息:
        采用32位表示,即表示即使是存儲(chǔ)0,也是采用32位,其二進(jìn)制形式是:
        0000 0000 0000 0000 0000 0000 0000 0001
        不支持無(wú)符號(hào),即表示這32位的最高位為符號(hào)位,0表示整數(shù),1表示負(fù)數(shù)。
        
        因此,做a & b的運(yùn)算是如下:
        0000 0000 0000 0000 0000 0000 0000 0101
        &
        0000 0000 0000 0000 0000 0000 0000 0010
        結(jié)果:
        0000 0000 0000 0000 0000 0000 0000 0000
        至于~a運(yùn)算如下:
        0000 0000 0000 0000 0000 0000 0000 0101
        結(jié)果:
        1111 1111 1111 1111 1111 1111 1111 1010
        由于最高位為1,所以表示這是一個(gè)負(fù)數(shù)。負(fù)數(shù)的采用的編碼方式和正數(shù)是不一樣的,一般都采用補(bǔ)碼的方式來(lái)存儲(chǔ)負(fù)數(shù),補(bǔ)碼的計(jì)算方式就是反碼加一。至于反碼,就是全部位取反。
        因此,1111 1111 1111 1111 1111 1111 1111 1010的反碼就是:
        0000 0000 0000 0000 0000 0000 0000 0101
        做加一操作,得到:
        0000 0000 0000 0000 0000 0000 0000 0110
        最終結(jié)果就是-6。

      zww23 2004年06月21日 02:29 PM

      感謝您們的詳細(xì)解答,我已經(jīng)明白了,謝謝?。。。。?/DIV>


        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多