久久久久久久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使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
主站蜘蛛池模板: 正在播放一区二区 | 欧美日韩一二三区 | 手机三级电影 | 欧美精品1区 | 成年人网站在线观看视频 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 久久综合久 | 国产精品久久久久久久久久久新郎 | 欧美v日韩v| 久久精品a级毛片 | 天天干视频 | 国产精品国产a级 | 国产午夜精品一区二区三区四区 | 一级毛片色一级 | 91精品国产91久久久久久最新 | 欧美8一10sex性hd | 国产丝袜一区二区三区免费视频 | 国产精品日女人 | 亚洲精品视频在线播放 | 欧美精品福利视频 | 国产精品久久久久不卡 | 免费成年网站 | 久久精彩视频 | 国产精品久久久久久久久婷婷 | 国产极品粉嫩美女呻吟在线看人 | 久久久久久久一级 | 日韩91 | 成人黄色在线视频 | 国产欧美在线播放 | 伊人中文网| 午夜视频在线观看一区二区 | 网络毛片| 欧美精品1区2区3区 精品国产欧美一区二区 | 国产精品国产a级 | 成人在线精品视频 | 国产激情一区二区三区 | 国产精品色综合 | 精品国产乱码久久久久久88av | 免费国产一区 | 亚洲一区二区三区免费在线观看 | 97在线播放|