溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP原碼,反碼,補(bǔ)碼介紹

發(fā)布時間:2020-07-30 01:56:26 來源:網(wǎng)絡(luò) 閱讀:774 作者:pcn01 欄目:web開發(fā)

PHP原碼,反碼,補(bǔ)碼介紹



原碼:

    就是“原來的二進(jìn)制碼”,其實就是我們可以理解的按十進(jìn)制轉(zhuǎn)換為二進(jìn)制之后得到的一個字符碼。原碼在數(shù)字上都是可以理解的。但在實際的計算機(jī)的運(yùn)行過程中,卻常常不用原碼,所以就有反碼,補(bǔ)碼的問題。

在此基礎(chǔ)上,規(guī)則:一個二進(jìn)制數(shù)字的第一個位是符號位,0表示正數(shù),1表示負(fù)數(shù)。


    舉例:(都以8位為例):

        7:    00000111

       -7:    10000111


反碼:

    正數(shù)的反碼就是其本身。

    負(fù)數(shù)的反碼就是將原碼的非符號部分,每一位取反。。

    舉例:

        7:    00000111

       -7:    11111000


補(bǔ)碼:

    正數(shù)的補(bǔ)碼是其本身

    負(fù)數(shù)的反碼,符號位不變,其余每一位取反之后,整體加1

    舉例:

        7:    00000111

       -7:    11111000+1 = 11111001


加法運(yùn)算:

PHP原碼,反碼,補(bǔ)碼介紹

減法運(yùn)算:

PHP原碼,反碼,補(bǔ)碼介紹


總結(jié):

    1:數(shù)據(jù)在CPU內(nèi)部都是按補(bǔ)碼進(jìn)行運(yùn)算

    2:原碼,反碼,補(bǔ)碼的轉(zhuǎn)換過程是系統(tǒng)內(nèi)部的工作,且轉(zhuǎn)換時符號位不變

    3:用補(bǔ)碼運(yùn)算時,符號位參與運(yùn)算(即當(dāng)作一個普通的二進(jìn)制位的數(shù)字進(jìn)行運(yùn)算)


管理一組事物(數(shù)據(jù))的開關(guān)狀態(tài)

    開關(guān)狀態(tài):就是某種數(shù)據(jù),它只有2個值可用:true,false,1,0,開,關(guān)。。。

    一組事物是指:多個數(shù)據(jù)的任意可能的出現(xiàn)狀態(tài)

    我們假設(shè)有5個燈光的開關(guān)需要管理:

        1:確定每個燈泡的狀態(tài):開,關(guān);

        2:可以指定打開任意一個燈泡

        3:可以指定關(guān)閉任意一個燈泡

設(shè)定前提:這5個燈泡有明確的順序,我們將設(shè)定5個變量(常量其實也行)

假設(shè)1-5個燈泡的位置從右往左邊數(shù)--對應(yīng)數(shù)字的位數(shù)

第一個燈泡:$d1 = 1;    //00000001

第二個燈泡:$d2 = 2;    //00000010

第三個燈泡:$d3 = 4;    //00000100

第四個燈泡:$d4 = 8;    //00001000

第五個燈泡:$d5 = 16;   //00010000

則所有燈泡的總的狀態(tài),就可以使用一個變量來描述:

如果$state = 7;    //00000111    就表示第一,二,三個燈泡亮

如果$state = 9;    //00001001    就表示第一,四個燈泡亮

如果$state = 13;   //00001101    就表示第一,二,四個燈泡亮


確定一個燈泡的開關(guān)狀:

    $s1 = $state & $dn    //這里n表示1-5之間的任意一個

        則結(jié)果如果$s1 > 0 ,就表示該燈泡亮,否則就表示該燈泡滅 

打開指定的燈泡:

    $state = $state | $dn;    //這里n表示1-5之間的任意一個

關(guān)閉指定燈泡:

    $state = $state & ~$dn;    //這里n表示1-5之間的任意一個

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI