PHP原碼,反碼,補碼介紹
創(chuàng)新互聯(lián)建站擁有十余年成都網(wǎng)站建設工作經(jīng)驗,為各大企業(yè)提供成都網(wǎng)站制作、做網(wǎng)站服務,對于網(wǎng)頁設計、PC網(wǎng)站建設(電腦版網(wǎng)站建設)、成都App制作、wap網(wǎng)站建設(手機版網(wǎng)站建設)、程序開發(fā)、網(wǎng)站優(yōu)化(SEO優(yōu)化)、微網(wǎng)站、國際域名空間等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設行業(yè)積累了很多網(wǎng)站制作、網(wǎng)站設計、網(wǎng)絡營銷經(jīng)驗,集策劃、開發(fā)、設計、營銷、管理等網(wǎng)站化運作于一體,具備承接各種規(guī)模類型的網(wǎng)站建設項目的能力。原碼:
就是“原來的二進制碼”,其實就是我們可以理解的按十進制轉(zhuǎn)換為二進制之后得到的一個字符碼。原碼在數(shù)字上都是可以理解的。但在實際的計算機的運行過程中,卻常常不用原碼,所以就有反碼,補碼的問題。
在此基礎上,規(guī)則:一個二進制數(shù)字的第一個位是符號位,0表示正數(shù),1表示負數(shù)。
舉例:(都以8位為例):
7: 00000111
-7: 10000111
反碼:
正數(shù)的反碼就是其本身。
負數(shù)的反碼就是將原碼的非符號部分,每一位取反。。
舉例:
7: 00000111
-7: 11111000
補碼:
正數(shù)的補碼是其本身
負數(shù)的反碼,符號位不變,其余每一位取反之后,整體加1
舉例:
7: 00000111
-7: 11111000+1 = 11111001
加法運算:
減法運算:
總結(jié):
1:數(shù)據(jù)在CPU內(nèi)部都是按補碼進行運算
2:原碼,反碼,補碼的轉(zhuǎn)換過程是系統(tǒng)內(nèi)部的工作,且轉(zhuǎn)換時符號位不變
3:用補碼運算時,符號位參與運算(即當作一個普通的二進制位的數(shù)字進行運算)
管理一組事物(數(shù)據(jù))的開關狀態(tài)
開關狀態(tài):就是某種數(shù)據(jù),它只有2個值可用:true,false,1,0,開,關。。。
一組事物是指:多個數(shù)據(jù)的任意可能的出現(xiàn)狀態(tài)
我們假設有5個燈光的開關需要管理:
1:確定每個燈泡的狀態(tài):開,關;
2:可以指定打開任意一個燈泡
3:可以指定關閉任意一個燈泡
設定前提:這5個燈泡有明確的順序,我們將設定5個變量(常量其實也行)
假設1-5個燈泡的位置從右往左邊數(shù)--對應數(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 就表示第一,二,四個燈泡亮
確定一個燈泡的開關狀:
$s1 = $state & $dn //這里n表示1-5之間的任意一個
則結(jié)果如果$s1 > 0 ,就表示該燈泡亮,否則就表示該燈泡滅
打開指定的燈泡:
$state = $state | $dn; //這里n表示1-5之間的任意一個
關閉指定燈泡:
$state = $state & ~$dn; //這里n表示1-5之間的任意一個
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。