国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 邏輯算法 > 正文

php如何統(tǒng)計(jì)二進(jìn)制算法

2020-03-22 19:01:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這次給大家?guī)?lái)php如何統(tǒng)計(jì)二進(jìn)制算法,php統(tǒng)計(jì)二進(jìn)制算法的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。

php怎么實(shí)現(xiàn)統(tǒng)計(jì)二進(jìn)制中1的個(gè)數(shù)算法?本文為大家介紹了php實(shí)現(xiàn)統(tǒng)計(jì)二進(jìn)制中1的個(gè)數(shù)算法的實(shí)例代碼,快來(lái)看看吧。

問(wèn)題

輸入一個(gè)十進(jìn)制整數(shù),輸出該數(shù)二進(jìn)制表示中1的個(gè)數(shù)。其中負(fù)數(shù)用補(bǔ)碼表示。

解決思路

這是個(gè)位運(yùn)算的題目。
解法一:可以通過(guò)按位與操作,通過(guò)將每一位和1與操作來(lái)求出1的個(gè)數(shù)。
解法二(最優(yōu)解):一個(gè)巧妙的方法,一個(gè)不為0的二進(jìn)制數(shù),肯定至少有一位是1,當(dāng)這個(gè)數(shù)減一的時(shí)候,它的最后一位1會(huì)變?yōu)?,后邊的所有0會(huì)變?yōu)?。比如10100,減一之后會(huì)變?yōu)?0011,然后用原數(shù)字10100和10011進(jìn)行與操作之后,會(huì)得到10000,也就是通過(guò)這個(gè)操作,可以將一個(gè)1變?yōu)?,所以一個(gè)二進(jìn)制數(shù)字能進(jìn)行多少次這樣的操作,就有多少個(gè)1.

實(shí)現(xiàn)代碼

//解法一function NumberOf1($n){ $count = 0;  $flag = 1;  while ($flag != 0) {   if (($n & $flag) != 0) {    $count++;   }   $flag = $flag << 1;  }  return $count;}
// 解法二function NumberOf1($n){ $count = 0; if($n < 0){ // 處理負(fù)數(shù)   $n = $n&0x7FFFFFFF;   ++$count; } while($n != 0){  $count++;  $n = $n & ($n-1); } return $count;}
//測(cè)試$num=45;echo $num."的二進(jìn)制是".decbin($num)."<br/>";echo $num."共有".NumberOf1($num)."個(gè)1";

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請(qǐng)關(guān)注 其它相關(guān)文章!

推薦閱讀:

PHP的回調(diào)函數(shù)使用詳解

PHP中應(yīng)該怎么使用file_put_contents函數(shù)

以上就是php如何統(tǒng)計(jì)二進(jìn)制算法的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注 其它相關(guān)文章!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 罗田县| 永顺县| 军事| 阿拉尔市| 凤城市| 普格县| 北安市| 怀远县| 桂平市| 江西省| 五河县| 武鸣县| 响水县| 阳西县| 泌阳县| 黄山市| 昌都县| 大关县| 许昌县| 自贡市| 新安县| 长宁区| 西城区| 宜州市| 黄浦区| 浦城县| 祥云县| 噶尔县| 浦江县| 赤水市| 大宁县| 阜南县| 建平县| 肥西县| 临武县| 原阳县| 永兴县| 宜兰县| 曲阜市| 沙河市| 文成县|