久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

php實現統計二進制中1的個數算法示例

這篇文章主要介紹了php實現統計二進制中1的個數算法,結合實例形式分析了php字符串遍歷、判斷、統計等相關操作技巧,需要的朋友可以參考下

本文實例講述了php實現統計二進制中1的個數算法。分享給大家供大家參考,具體如下:

問題

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

解決思路

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

實現代碼


//解法一
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){ // 處理負數
   $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";

運行結果:

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP數據結構與算法教程》、《php程序設計算法總結》、《php字符串(string)用法總結》、《PHP數組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結》及《PHP數學運算技巧總結》

希望本文所述對大家PHP程序設計有所幫助。

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

這篇文章主要介紹了PHP實現的防止跨站和xss攻擊代碼,是一款來自阿里云的防注入腳本,可實現針對注入、XSS攻擊等的過濾功能,需要的朋友可以參考下
這篇文章主要介紹了php實現的AES加密類定義與用法,結合完整實例形式分析了基于php的AES加密類實現及使用方法,需要的朋友可以參考下
這篇文章主要介紹了php 判斷IP為有效IP地址的方法,需要的朋友可以參考下
這篇文章主要介紹了PHP設計模式之注冊樹模式,結合實例形式詳細分析了注冊樹模式的概念、原理、實現方法與相關注意事項,需要的朋友可以參考下
這篇文章主要為大家詳細介紹了PHP微信開發之微信錄音臨時轉永久存儲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
這篇文章主要為大家詳細介紹了PHP CURL與java http使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
主站蜘蛛池模板: 噜噜噜色网 | 日本成人在线观看网站 | 一区二区三区视频在线免费观看 | 日韩成人在线电影 | 久久国产精品72免费观看 | 日韩中文一区二区三区 | 日韩精品久久 | 久草a√| 在线观看av免费 | 性一交一乱一透一a级 | 国产精品成人在线观看 | av一区二区三区四区 | 成人3d动漫一区二区三区91 | 久久久久久高潮国产精品视 | 免费人成在线观看网站 | 日韩欧美在线视频 | 999精品网| 日韩在线欧美 | 国产a区 | 岛国毛片 | 大香在线伊779 | 成人福利在线 | 久色网| 日韩国产欧美一区 | 精品国产第一区二区三区 | 激情网站在线 | 麻豆精品国产91久久久久久 | 精品免费国产视频 | 日韩人体在线 | 伊人精品久久久久77777 | 国产成人99久久亚洲综合精品 | 免费在线观看黄网站 | 欧美中文一区 | www日本在线 | 91最新在线视频 | 免费在线观看成人 | 欧美老妇交乱视频 | 福利视频三区 | xxxxxx国产 | 免费黄网站在线观看 | 日韩一区二 |