首页  >  文章  >  后端开发  >  PHP 程序计算整数中的设置位

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

王林
王林原创
2024-08-28 12:07:181113浏览

什么是二进制代码?

二进制代码是使用以 2 为基数的数字系统表示信息或数据的系统。它仅使用两位数字(通常为 0 和 1)来表示所有值。二进制代码中的每个数字称为一位(二进制数字的缩写)。

在二进制代码中,每个数字代表2的幂。从最右边的数字开始,2的幂从右向左递增。例如,在8位二进制代码中,最右边的位代表2^0(1),下一位代表2^1(2),再下一位代表2^2(4),依此类推。

示例

让我们采用十进制数 42 并用二进制代码表示它。为了将 42 转换为二进制,我们将它依次除以 2 并记录余数,直到商变为零。

这是分步过程:

步骤1

42 ÷ 2 = 21,余数 0

步骤2

21 ÷ 2 = 10,余数 1

步骤3

10 ÷ 2 = 5,余数 0

第四步

5 ÷ 2 = 2,余数 1

步骤5

2 ÷ 2 = 1,余数 0

步骤6

1 ÷ 2 = 0,余数 1

为了获得二进制表示,我们从底部(最后一个余数)开始,从下到上读取余数。

42 的二进制代码是:101010

所以,十进制数42用二进制码表示为101010。

Setbit是什么?

在二进制代码中,设置位是指设置为 1 的二进制数字(位)。另一方面,清除位是指设置为 0 的二进制数字。

示例

例如,二进制码101010中,有3个置位位(对应值为1的位置)和3个清零位(对应值为0的位置)。

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

PHP Program to Count set Bits in an Integer

方法一:循环遍历整数中的所有位

示例

雷雷

输出

雷雷

方法2:递归方法

雷雷

输出

雷雷

结论

总之,我们可以使用递归方法和循环遍历 PHP 中的所有位来计算整数中的设置位(1)。循环方法涉及使用 while 循环迭代整数的每一位。我们初始化一个计数器变量并迭代,直到数字变为 0。在循环内,我们使用按位与 1 来检查最低有效位。如果它等于 1,我们就递增计数器。然后,我们将数字右移 1 位。此过程持续进行,直到检查完所有位并返回最终计数。

对于递归方法,我们可以定义一个以整数作为输入的递归函数。在函数内部,我们使用按位 AND 运算符与 1 检查最低有效位。如果它等于 1,我们就递增计数器。然后,我们将数字右移 1 位,并使用更新后的数字递归调用该函数。基本情况是当数字变为 0 时,此时我们返回计数器。这种方法递归地对设置位进行计数,直到数字变为 0。这两种方法都提供了一种对整数中的设置位进行计数的方法,允许根据程序员的特定需求和偏好进行不同的实现选择。

以上是PHP 程序计算整数中的设置位的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn