婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > php實現統計二進制中1的個數算法示例

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

熱門標簽:離石地圖標注 長沙crm外呼系統業務 400電話辦理福州市 深圳外呼系統收費 江蘇外呼電銷機器人報價 電話機器人危險嗎 南寧高頻外呼回撥系統哪家好 專業電話機器人批發商 400電話申請方法收費

本文實例講述了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 = $n0x7FFFFFFF;
   ++$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統計二維數組元素個數的方法
  • php統計數組元素個數的方法
  • 使用php統計字符串中中英文字符的個數
  • PHP統計數值數組中出現頻率最多的10個數字的方法
  • php簡單統計中文個數的方法
  • PHP實現統計一個數字在排序數組中出現次數的方法
  • php編寫的抽獎程序中獎概率算法
  • php中最簡單的字符串匹配算法
  • PHP經典算法集錦【經典收藏】
  • php經典算法集錦

標簽:濱州 南京 南昌 白酒營銷 株洲 太原 興安盟 曲靖

巨人網絡通訊聲明:本文標題《php實現統計二進制中1的個數算法示例》,本文關鍵詞  php,實現,統計,二進制,中,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php實現統計二進制中1的個數算法示例》相關的同類信息!
  • 本頁收集關于php實現統計二進制中1的個數算法示例的相關信息資訊供網民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章
    主站蜘蛛池模板: 彩票| 库尔勒市| 盖州市| 内江市| 沧源| 威海市| 吉木萨尔县| 井研县| 霍州市| 绥阳县| 江津市| 新和县| 靖边县| 嘉义市| 阿拉尔市| 大庆市| 高邑县| 昌宁县| 库车县| 甘洛县| 肃北| 平利县| 彭山县| 博兴县| 五河县| 辉南县| 涿州市| 饶河县| 通江县| 阜城县| 广宁县| 庄河市| 工布江达县| 五河县| 靖州| 德惠市| 六盘水市| 西和县| 梧州市| 南皮县| 托克逊县|