您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP程序计算整数中设置位的数量

2024/4/15 20:33:12发布29次查看
什么是二进制代码?二进制代码是一种使用二进制数系统来表示信息或数据的系统。它只使用两个数字,通常是0和1,来表示所有的值。二进制代码中的每个数字被称为一个位(二进制数字的缩写)。
在二进制代码中,每个数字代表2的幂。从最右边的数字开始,2的幂从右到左递增。例如,在8位二进制代码中,最右边的位代表2^0(1),下一个位代表2^1(2),下一个位代表2^2(4),依此类推。
example让我们将十进制数42转换为二进制代码。要将42转换为二进制,我们将其连续除以2,并跟踪余数,直到商变为零
以下是逐步过程:
第一步
42 ÷ 2 = 21,余数为0
第二步
21 ÷ 2 = 10,余数为1
步骤 3
10 ÷ 2 = 5,余数为0
第四步
5 ÷ 2 = 2,余数为1
第五步
2 ÷ 2 = 1,余数为0
第六步
1 ÷ 2 = 0,余数为1
要获取二进制表示,我们从底部(最后一个余数)开始,并从底部向上读取余数
对于42 的二进制代码是:101010
所以,十进制数42在二进制代码中表示为101010。
setbit是什么?在二进制代码的背景下,设置位指的是被设置为1的二进制数字(位)。另一方面,清除位指的是被设置为0的二进制数字(位)
example
例如,在二进制代码101010中,有三个置位(对应值为1的位置)和三个清零位(对应值为0的位置)。
php程序:计算整数中设置位的数量
方法1:循环遍历整数中的所有位example<?php// function to get no of set// bits in binary representation// of positive integer nfunction countsetbits($n){ $count = 0; while ($n) { $count += $n & 1; $n >>= 1; } return $count;}// driver code$number= 12;echo number of setbits in $number: .countsetbits($number);?>
输出number of setbits in 12: 2
方法2:递归方法<?php// php implementation of recursive// approach to find the number of// set bits in binary representation// of positive integer n// recursive function// to count set bitsfunction countsetbits($n){ // base case if ($n == 0) return 0; else // if last bit set // add 1 else add 0 return ($n & 1) + countsetbits($n >> 1);}// driver code// get value from user$n = 123;// function callingecho number of setbits in $n are: .countsetbits($n);?>
输出number of setbits in 123 are: 6
conclusion总之,我们可以使用递归方法和循环遍历所有位来计算一个整数中的置位(1)的数量。循环方法涉及使用while循环迭代整数的每一位。我们初始化一个计数器变量,并迭代直到数字变为0。在循环内部,我们使用按位与运算符与1进行按位与运算,以检查最低有效位。如果等于1,我们增加计数器。然后,我们将数字向右移动1位。这个过程一直持续到所有位都被检查完毕,并返回最终的计数
对于递归方法,我们可以定义一个递归函数,该函数以一个整数作为输入。在函数内部,我们使用按位与运算符和1来检查最低有效位。如果等于1,我们就增加一个计数器。然后,我们将数字右移1位,并使用更新后的数字递归调用函数。基本情况是当数字变为0时,我们返回计数器的值。这种方法递归地计算设置位,直到数字变为0。这两种方法都提供了一种在整数中计算设置位的方法,根据程序员的具体需求和偏好可以选择不同的实现方式
以上就是php程序计算整数中设置位的数量的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product