C/C++程序:计算一个整数中设置的位数?

c/c++程序:计算一个整数中设置的位数?

对设置的位进行计数意味着对给定整数进行 1 的计数。为此,我们有多种可以应用的解决方案。对于这种情况,我们有一个二进制数(整数的二进制表示),为此我们必须计算字符串中 1 的数量。

要计算 1 的数量,我们将获取字符串,遍历每个元素并统计字符串中所有1的个数。例如,如果我们输入 17,则输出将为 2,因为 17 的二进制为 10001,其中包含两个 1。

Input: Enter a positive integer: 6Output: 2

说明

6 的二进制表示形式是 110,它有 2 个设置位

这种迭代方法需要每位迭代一次。它贯穿数字的所有位。当不再设置任何位时,迭代终止。在最坏的情况下,对于仅设置最高有效位的 32 位字,它将循环 32 次迭代。此解决方案是最简单的解决方案,如果 1 稀疏且位于最低有效位中,则该解决方案很有用。

立即学习“C++免费学习笔记(深入)”;

示例

#include int main(void) {   unsigned int n = 34;   for (c = 0; n; n >>= 1) {      c += n & 1;   }   printf("%dn", c);}

以上就是C/C++程序:计算一个整数中设置的位数?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1443543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 20:16:45
下一篇 2025年12月17日 20:16:56

相关推荐

  • 程序设计中的隐式类型转换的类型及重要性

    隐式类型转换的种类及其在程序设计中的重要性 在程序设计中,类型转换是一种常见的操作,用于改变变量或对象的数据类型。无论是显式类型转换还是隐式类型转换,都是为了满足某些特定的需求。在本文中,我们将重点讨论隐式类型转换的种类以及它在程序设计中的重要性。 隐式类型转换是指在特定条件下,编译器自动将一种数据…

    2025年12月21日
    000
  • 使用C语言编写的计算最大公约数的程序

    C语言是一种常用的编程语言,广泛应用于软件开发和算法实现。在数学中,最大公约数是指能够整除给定的几个数的最大正整数。在本文中,我们将使用C语言编写一个求最大公约数的程序,并提供具体的代码示例。 题目:C语言编写的求最大公约数的程序 最大公约数的求解可以采用多种算法,而其中一个常用的方法是欧几里得算法…

    2025年12月17日
    000
  • C程序的起始点是什么?

    C语言程序的执行起点在哪里? C语言作为一种高级编程语言,被广泛应用于各种领域,成为程序员的必备技能之一。在编写C语言程序时,我们需要明确程序的执行起点,也就是程序从哪里开始执行。那么,C语言程序的执行起点究竟在哪里呢?本文将带您深入了解C语言程序的执行起点。 C语言程序的执行起点是main函数。在…

    2025年12月17日
    000
  • 如何通过C++编写一个简单的地址簿程序?

    如何通过C++编写一个简单的地址簿程序? 引言: 在现代社会中,地址簿是一种常见的工具,用于存储和管理个人联系人的基本信息,如姓名、电话号码和地址等。在本文中,我们将详细介绍如何使用C++编写一个简单的地址簿程序。 正文: 立即学习“C++免费学习笔记(深入)”; 步骤1:定义地址簿条目的结构 首先…

    2025年12月17日
    000
  • 一个C/C++指针谜题?

    假设我们有一个整型变量,其大小为 4 字节,还有另一个指针变量,其大小为 8 字节。那么下面的输出会是什么? 示例 #includeusing namespace std;main() { int a[4][5][6]; int x = 0; int* a1 = &x; int** a2 =…

    2025年12月17日
    000
  • 计算三棱柱的表面积的程序

    让我们看看如何编写程序来计算三棱柱的表面积。 计算三棱柱的表面积似乎非常基本,但程序员可能在很多领域都需要它。下面列出了一些常见场景 – 3D 图形和动画 – 在构建 3D 模型时,动画师和游戏开发人员可能需要计算三棱柱的表面积,以便在虚拟世界中正确表示它。 工程师和建筑师在…

    2025年12月17日
    000
  • 贪心算法的C/C++程序,用于找到最少硬币数量

    贪心算法是一种用于寻找给定问题的最优解决方案的算法。贪婪算法的工作原理是找到每个部分的局部最优解(问题的一部分的最优解),因此表明可以找到全局最优解。 在这个问题中,我们将使用贪婪算法算法来找到可以组成给定总和的最小硬币/纸币数量。 为此,我们将考虑所有有效的硬币或纸币,即面额为 { 1, 2, 5…

    2025年12月17日
    000
  • 编写一个程序来打印二项式展开系列

    二项展开式是一个数学公式,用于展开 (a+b)^n 形式的表达式,其中 n 是正整数,a 和 b 可以是任何实数或复数。展开式给出了展开式中各项的系数。 一个二项式展开可以表示为 $$mathrm{(a+b)^n= ^nC_0a^nb^0+ ^nC_1a^{n-1}b^1 + ^nCa^{n-2}b…

    2025年12月17日
    000
  • 从1到N逆序打印质数

    输入数字n,直到计算素数并以倒序显示 Input : number 30Output : 29 23 19 17 13 11 7 5 3 2 算法 STARTStep 1 -> declare variables as n, I, j, flag to 0 as intStep 2 ->…

    2025年12月17日
    000
  • 一些关于C/C++三元运算符的有趣观察

    我们知道三元运算符是代替 if..else 子句实现的。它由 ?: 表示。 ‘?’符号相当于 if 部分,’:’ 相当于 else 部分。以下 3 个程序解释了三元运算符情况下的一些有趣的观察结果。 以下程序能够编译,没有任何错误。三元表达式的返回类型…

    2025年12月17日
    000
  • C语言编写的汉诺塔程序

    汉诺塔是一个数学难题。它由三根杆和若干个不同大小的圆盘组成,这些圆盘可以滑动到任意一根杆上。难题以圆盘按大小升序整齐堆叠在一根杆上开始,最小的圆盘在顶部。我们必须将相同的堆叠移到第三根杆上。 难题的目标是将整个堆叠移动到另一根杆上,遵守以下简单规则− 一次只能移动一个圆盘。 每次移动包括从一根堆中取…

    2025年12月17日
    000
  • 在C/C++中,strcmp()函数用于比较两个字符串

    The function strcmp() is a built-in library function and it is declared in “string.h” header file. This function is used to compare the string argumen…

    2025年12月17日
    000
  • C++程序:将一个数组的所有元素复制到另一个数组中

    数组数据结构用于在连续的内存中存储同质数据位置以顺序方式访问它们。数组是线性数据结构,因此数组的基本操作可以在线性时间内执行。在本文中,我们将了解如何在 C++ 中将一个数组中的元素复制到另一个新数组。 由于数组元素是同类的,因此新数组将具有相同的类型。创建后另一个相同大小的数组,我们只需将第一个数…

    2025年12月17日
    000
  • C++程序初始化字典

    C++在同名的字典方面与Python不同,但它具有相似功能的相同数据结构。C++支持映射,可在STL类std::map中使用。映射对象在每个条目中包含一对值,一个是键值,另一个是映射值。键值用于在映射中搜索和唯一标识条目。而映射值不一定是唯一的,键值在映射中必须始终是唯一的。让我们看一下如何使用映射…

    2025年12月17日
    000
  • C程序中的阶乘程序

    Given with the number n the task is to calculate the factorial of a number. Factorial of a number is calculated by multiplying the number with its sma…

    2025年12月17日
    000
  • C++程序计算矩阵对角线之和

    The utilization of 2-dimensional arrays or matrices is extremely advantageous for severalapplications. Matrix rows and columns are used to hold number…

    2025年12月17日
    100
  • 如何使用C/C++检查输入是否为整数?

    在这里,我们将看到如何检查给定的输入是整数字符串还是普通字符串。整数字符串将包含在0-9范围内的所有字符。解决方案非常简单,我们将逐个检查每个字符,然后检查它是否是数字。如果是数字,则指向下一个字符,否则返回false值。 示例 #include using namespace std;bool i…

    2025年12月17日
    000
  • 在C/C++中,“dereferencing”一个指针是什么意思?

    解引用用于访问或操作指针指向的内存位置中包含的数据。 *(星号)与指针变量一起使用,当解引用指针变量时,它指的是被指向的变量,所以这称为指针的解引用。 int main() { int a = 7, b ; int *p; // Un-initialized Pointer p = &a; …

    2025年12月17日
    000
  • 在C语言中编写的斐波那契数列程序

    给定’n’个数字,任务是生成从0到n的斐波那契数列,其中整数的斐波那契数列形式为 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 其中,整数0和1将有固定的空格,然后添加两位数字,例如, 将原文翻译为中文后,保留HTML代码如下: 其中,整数0和1将有固定的空…

    2025年12月17日
    000
  • 使用分支限界法在C/C++中实现0/1背包问题

    这个想法是为了实现贪婪方法为分数背包问题提供最佳解决方案这一事实。 为了检查特定节点是否可以为我们提供更好的解决方案,我们计算最佳解决方案(通过节点)实施贪心方法。如果贪心法本身计算出的解比目前为止最好的解要多,那么我们就无法通过节点获得更好的解。 完整的算法如下 – 根据每单位重量的价…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信