php实现 求int型数据在内存中存储时1的个数(函数都可自己实现)

php实现 求int型数据在内存中存储时1的个数(函数都可自己实现)

一、总结

一句话总结:函数我们自己都可以实现,尤其是很多基础函数,没有工具的时候自己写。

1、php进制转换函数?

base_convert进制转换函数

5 $bin = base_convert($dec, 10, 2);;

2、php十进制转化成2进制函数?

dexbin,dex为10,bin,也很好记

3     $bin = decbin($input);

3、php统计一个字符串中某字符出现的次数?

substr_count()

6 echo substr_count($bin, "1").PHP_EOL;

二、求int型数据在内存中存储时1的个数

题目描述

输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。

输入描述:

 输入一个整数(int类型)

输出描述:

 这个数转换成2进制后,输出1的个数

示例1

输入

复制
5

输出

复制
2

代码:

1 <?php
2   $input = intval(trim(fgets(STDIN)));
3   $output = 0;
4   while(0 < $input){
5       if(1 == $input%2)
6           $output++;
7       $input = floor($input/2);
8   }
9   echo $output;
1 <?php
2 $dec = "";
3 $bin = "";
4 fscanf(STDIN, "%s", $dec);
5 $bin = base_convert($dec, 10, 2);;
6 echo substr_count($bin, "1").PHP_EOL;
1 <?php
2     $input = trim(fgets(STDIN));
3     $bin = decbin($input);
4     echo substr_count($bin, '1');

decbin — 十进制转换为二进制

string decbin ( int $number )

 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/9211656.html