zoukankan      html  css  js  c++  java
  • php实现 查找输入整数二进制中1的个数

    php实现 查找输入整数二进制中1的个数

    一、总结

    一句话总结:

    1、if($j&intval($num)){}的作用是什么

     1 <?php
     2 while($num=trim(fgets(STDIN))){
     3     $n=0;
     4     for($i=0;$i<32;$i++){
     5         $j=1<<$i;
     6         //echo $j.PHP_EOL;
     7         if($j&intval($num)){
     8             $n++;
     9         }
    10     }
    11     echo $n.PHP_EOL;
    12 }
    13 ?>
    $a & $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。

    2、如何将一个数左移?

    a、数的位置,

    b、符号

     5         $j=1<<$i;

    二、查找输入整数二进制中1的个数

    题目描述

    请实现如下接口

         public   static   int  findNumberOf1( intnum)

        {

             /*  请实现  */

             return  0;

        } 譬如:输入5 ,5的二进制为101,输出2

    涉及知识点:

    输入描述:

    输入一个整数

    输出描述:

    计算整数二进制中1的个数

    示例1

    输入

    复制
    5
    

    输出

    复制
    2
     
    例子名称结果
    $a & $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。
    $a | $b Or(按位或) 将把 $a 和 $b 中任何一个为 1 的位设为 1。
    $a ^ $b Xor(按位异或) 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。
    ~ $a Not(按位取反) 将 $a 中为 0 的位设为 1,反之亦然。
    $a << $b Shift left(左移) 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。
    $a >> $b Shift right(右移) 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。

    代码

     1 <?php
     2 while($num=trim(fgets(STDIN))){
     3     $n=0;
     4     for($i=0;$i<32;$i++){
     5         $j=1<<$i;
     6         //echo $j.PHP_EOL;
     7         if($j&intval($num)){
     8             $n++;
     9         }
    10     }
    11     echo $n.PHP_EOL;
    12 }
    13 ?>
     
  • 相关阅读:
    telnet发邮件
    怎样接收电子邮件(POP3协议简介)(转载,写的很简洁)
    总结:string,char*,CString,int,WCHAR*之间的相互转换:
    文件查找
    SOAP消息机制简介
    jQuery 万能的选择器 NO.1
    数据库通用操作类
    jQuery (三) 管理jQuery包装集
    WebService Learning
    使用JQuery读取XML文件数据
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9292071.html
Copyright © 2011-2022 走看看