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

首頁 > 學院 > 邏輯算法 > 正文

php實現(xiàn)統(tǒng)計二進制中1的個數(shù)算法的示例

2020-03-22 17:21:53
字體:
供稿:網(wǎng)友
這篇文章主要介紹了php實現(xiàn)統(tǒng)計二進制中1的個數(shù)算法,結(jié)合實例形式分析了php字符串遍歷、判斷、統(tǒng)計等相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了php實現(xiàn)統(tǒng)計二進制中1的個數(shù)算法。分享給大家供大家參考,具體如下:

問題

輸入一個十進制整數(shù),輸出該數(shù)二進制表示中1的個數(shù)。其中負數(shù)用補碼表示。

解決思路

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

實現(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){ // 處理負數(shù) $n = $n 0x7FFFFFFF; ++$count; while($n != 0){ $count++; $n = $n ($n-1); return $count;}

//測試$num=45;echo $num. 的二進制是 .decbin($num). br/ echo $num. 共有 .NumberOf1($num). 個1 

運行結(jié)果:

您可能感興趣的文章:

PHP開發(fā)之用微信遠程遙控服務器的相關(guān)講解

CI框架(CodeIgniter)操作redis的方法的詳解

php使用imagecopymerge()函數(shù)創(chuàng)建半透明水印的詳解

以上就是php實現(xiàn)統(tǒng)計二進制中1的個數(shù)算法的示例的詳細內(nèi)容,PHP教程

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 五原县| 白河县| 平乐县| 肇州县| 军事| 贺州市| 关岭| 罗源县| 荃湾区| 山西省| 淳安县| 芒康县| 长子县| 沁源县| 察雅县| 三门县| 原平市| 大理市| 张家界市| 建水县| 多伦县| 阿巴嘎旗| 曲麻莱县| 改则县| 上高县| 孙吴县| 搜索| 通城县| 东乡| 江都市| 息烽县| 临朐县| 康定县| 大港区| 临泽县| 开江县| 宣化县| 麻江县| 内江市| 交城县| 伊春市|