”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > PHP 程序计算整数中的设置位

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

发布于2024-08-29
浏览:565

什么是二进制代码?

二进制代码是使用 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

第 4 步

5 ÷ 2 = 2,余数 1

步骤 5

2 ÷ 2 = 1,余数 0

步骤 6

1 ÷ 2 = 0,余数 1

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

42 的二进制代码是:101010

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

Setbit是什么?

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

例子

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

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

PHP Program to Count set Bits in an Integer

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

例子

>= 1;
	}
	return $count;
}

// Driver Code
$number= 12;
echo "Number of setbits in $number: " .countSetBits($number);
?>

输出

Number of setbits in 12: 2

方法2:递归方法

> 1);
}

// Driver code

// get value from user
$n = 123;

// function calling
echo "Number of setbits in $n are: ".countSetBits($n);
?>

输出

Number of setbits in 123 are: 6

结论

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

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

版本声明 本文转载于:https://www.tutorialspoint.com/php-program-to-count-set-bits-in-an-integer如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 表单刷新后如何防止重复提交?
    表单刷新后如何防止重复提交?
    在Web开发中预防重复提交 在表格提交后刷新页面时,遇到重复提交的问题是常见的。要解决这个问题,请考虑以下方法: 想象一下具有这样的代码段,看起来像这样的代码段:)){ //数据库操作... 回声“操作完成”; 死(); } ?> ...
    编程 发布于2025-05-14
  • 在C#中如何高效重复字符串字符用于缩进?
    在C#中如何高效重复字符串字符用于缩进?
    在基于项目的深度下固定字符串时,重复一个字符串以进行凹痕,很方便有效地有一种有效的方法来返回字符串重复指定的次数的字符串。使用指定的次数。 constructor 这将返回字符串“ -----”。 字符串凹痕= new String(' - ',depth); console.Wr...
    编程 发布于2025-05-14
  • 人脸检测失败原因及解决方案:Error -215
    人脸检测失败原因及解决方案:Error -215
    错误处理:解决“ error:((-215)!empty()in Function Multultiscale中的“ openCV 要解决此问题,必须确保提供给HAAR CASCADE XML文件的路径有效。在提供的代码片段中,级联分类器装有硬编码路径,这可能对您的系统不准确。相反,OPENCV提...
    编程 发布于2025-05-14
  • 为什么PHP的DateTime :: Modify('+1个月')会产生意外的结果?
    为什么PHP的DateTime :: Modify('+1个月')会产生意外的结果?
    使用php dateTime修改月份:发现预期的行为在使用PHP的DateTime类时,添加或减去几个月可能并不总是会产生预期的结果。正如文档所警告的那样,“当心”这些操作的“不像看起来那样直观。 考虑文档中给出的示例:这是内部发生的事情: 现在在3月3日添加另一个月,因为2月在2001年只有2...
    编程 发布于2025-05-14
  • Java中假唤醒真的会发生吗?
    Java中假唤醒真的会发生吗?
    在Java中的浪费唤醒:真实性或神话?在Java同步中伪装唤醒的概念已经是讨论的主题。尽管存在这种行为的潜力,但问题仍然存在:它们实际上是在实践中发生的吗? Linux的唤醒机制根据Wikipedia关于伪造唤醒的文章,linux实现了pthread_cond_wait()功能的Linux实现,利用...
    编程 发布于2025-05-14
  • 如何使用FormData()处理多个文件上传?
    如何使用FormData()处理多个文件上传?
    )处理多个文件输入时,通常需要处理多个文件上传时,通常是必要的。 The fd.append("fileToUpload[]", files[x]); method can be used for this purpose, allowing you to send multi...
    编程 发布于2025-05-14
  • 如何在GO编译器中自定义编译优化?
    如何在GO编译器中自定义编译优化?
    在GO编译器中自定义编译优化 GO中的默认编译过程遵循特定的优化策略。 However, users may need to adjust these optimizations for specific requirements.Optimization Control in Go Compi...
    编程 发布于2025-05-14
  • 如何使用Depimal.parse()中的指数表示法中的数字?
    如何使用Depimal.parse()中的指数表示法中的数字?
    在尝试使用Decimal.parse(“ 1.2345e-02”中的指数符号表示法表示的字符串时,您可能会遇到错误。这是因为默认解析方法无法识别指数符号。 成功解析这样的字符串,您需要明确指定它代表浮点数。您可以使用numbersTyles.Float样式进行此操作,如下所示:[&& && && ...
    编程 发布于2025-05-14
  • Python元类工作原理及类创建与定制
    Python元类工作原理及类创建与定制
    python中的metaclasses是什么? Metaclasses负责在Python中创建类对象。就像类创建实例一样,元类也创建类。他们提供了对类创建过程的控制层,允许自定义类行为和属性。在Python中理解类作为对象的概念,类是描述用于创建新实例或对象的蓝图的对象。这意味着类本身是使用类关...
    编程 发布于2025-05-14
  • 如何在无序集合中为元组实现通用哈希功能?
    如何在无序集合中为元组实现通用哈希功能?
    在未订购的集合中的元素要纠正此问题,一种方法是手动为特定元组类型定义哈希函数,例如: template template template 。 struct std :: hash { size_t operator()(std :: tuple const&tuple)const {...
    编程 发布于2025-05-14
  • 如何使用Python有效地以相反顺序读取大型文件?
    如何使用Python有效地以相反顺序读取大型文件?
    在python 中,如果您使用一个大文件,并且需要从最后一行读取其内容,则在第一行到第一行,Python的内置功能可能不合适。这是解决此任务的有效解决方案:反向行读取器生成器 == ord('\ n'): 缓冲区=缓冲区[:-1] ...
    编程 发布于2025-05-14
  • 您如何在Laravel Blade模板中定义变量?
    您如何在Laravel Blade模板中定义变量?
    在Laravel Blade模板中使用Elegance 在blade模板中如何分配变量对于存储以后使用的数据至关重要。在使用“ {{}}”分配变量的同时,它可能并不总是最优雅的解决方案。幸运的是,Blade通过@php Directive提供了更优雅的方法: $ old_section =“...
    编程 发布于2025-05-14
  • JavaScript计算两个日期之间天数的方法
    JavaScript计算两个日期之间天数的方法
    How to Calculate the Difference Between Dates in JavascriptAs you attempt to determine the difference between two dates in Javascript, consider this s...
    编程 发布于2025-05-14
  • 在Ubuntu/linux上安装mysql-python时,如何修复\“ mysql_config \”错误?
    在Ubuntu/linux上安装mysql-python时,如何修复\“ mysql_config \”错误?
    mysql-python安装错误:“ mysql_config找不到”“ 由于缺少MySQL开发库而出现此错误。解决此问题,建议在Ubuntu上使用该分发的存储库。使用以下命令安装Python-MysqldB: sudo apt-get安装python-mysqldb sudo pip in...
    编程 发布于2025-05-14
  • PHP与C++函数重载处理的区别
    PHP与C++函数重载处理的区别
    作为经验丰富的C开发人员脱离谜题,您可能会遇到功能超载的概念。这个概念虽然在C中普遍,但在PHP中构成了独特的挑战。让我们深入研究PHP功能过载的复杂性,并探索其提供的可能性。在PHP中理解php的方法在PHP中,函数超载的概念(如C等语言)不存在。函数签名仅由其名称定义,而与他们的参数列表无关。...
    编程 发布于2025-05-14

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3