社区
C#
帖子详情
这个函数怎么快速知道结果
delectation
2008-10-10 04:42:09
static int test()
{
int x = 9999;
int count=0;
while (Convert.ToBoolean(x))
{
count++;
x=x&(x-1);
Console.WriteLine(x);
}
return count;
}
怎么理解这个函数。
...全文
121
10
打赏
收藏
这个函数怎么快速知道结果
static int test() { int x = 9999; int count=0; while (Convert.ToBoolean(x)) { count++; x=x&(x-1); Console.WriteLine(x); } return count; } 怎么理解这个函数。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Eagle_ice
2008-10-12
打赏
举报
回复
一楼了 想通了 就结帖撒....
zcs302
2008-10-12
打赏
举报
回复
想通了
dlmeijianyu
2008-10-10
打赏
举报
回复
一楼的是正确的.
ChargeForward
2008-10-10
打赏
举报
回复
[Quote=引用 1 楼 cpio 的回复:]
用来求一个整数的二进制表示时,有多少个1
[/Quote]
正解!
止戈而立
2008-10-10
打赏
举报
回复
[Quote=引用 4 楼 Jack_xiao 的回复:]
返回值count是8
9,9,9,9
1001,1001,1001,1001
9,9,9,8 =>返回值是7
1001,1001,1001,1000 =>7个1
9,9,9,7 =>返回值是7
1001,1001,1001,0111 =>9个1
一楼说的似乎不大对
[/Quote]
你的x变量是十进制的,并非十六进制,怎么可以转成这呢?
9999的二进制是:
0010011100001111
8个1
Jack_xiao
2008-10-10
打赏
举报
回复
这个函数似乎是一个衰变,返回值就是某个数按照这个衰变变为0的步数
Jack_xiao
2008-10-10
打赏
举报
回复
返回值count是8
9,9,9,9
1001,1001,1001,1001
9,9,9,8 =>返回值是7
1001,1001,1001,1000 =>7个1
9,9,9,7 =>返回值是7
1001,1001,1001,0111 =>9个1
一楼说的似乎不大对
Jack_xiao
2008-10-10
打赏
举报
回复
运行一下:
9998
9996
9992
9984
9728
9216
8192
0
cpio
2008-10-10
打赏
举报
回复
(Convert.ToBoolean(x))
判断是否含有1,如果有的话,肯定为真,count加1
x = x & (x - 1);去掉它的一个1
如果x最后一位是1,很明显,去掉了一个1
****1,减1的话,变成****0,再与一下,结果还是****0,少了最后的1
如果最后一位不是1
****0,减1之后,再与一下,最后一位肯定也是0,由于最后一位是0,减一之后肯定影响前面的,前面的也会少一个1
这样到最后没有1的时候就结束了,返回1的个数
cpio
2008-10-10
打赏
举报
回复
用来求一个整数的二进制表示时,有多少个1
快速
定位到
函数
指针所对应的
函数
在程序员的世界里,在定位问题,查看不是很熟悉的代码的时候,经常会遇到
函数
指针的使用。单从
函数
指针的使用来说,从指针的名字来看很难判断这个
函数
的真实名字,实际上真正调用的是哪个
函数
,如果一个一个
函数
加打印,又过于太慢了,浪费大量的时间,本篇就是一种在不太熟悉整个程序架构的情况下能
快速
定位
函数
指针所指的
函数
的方法。 方法简述,通过获得该指针的地址,可以在程序中加打印语句来获得,之后在将这个地址和编译...
c++中
快速
排序
函数
一)为什么要用c++标准库里的排序
函数
Sort()
函数
是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高! PS:如果需要排序的树木较多的话,这就是一个极好的排序方法… (二)c++标准库里的排序
函数
的使用方法 I)Sort
函数
包含在头文件为#inc...
C++虚
函数
详解
C++虚
函数
详解 前言 C++的特性使得我们可以使用
函数
继承的方法
快速
实现开发,而为了满足多态与泛型编程这一性质,C++允许用户使用虚
函数
**(virtual function)来完成运行时决议这一操作,这与一般的编译时决定**有着本质的区别。 虚
函数
表实现原理 虚
函数
的实现是由两个部分组成的,虚
函数
指针与虚
函数
表。 虚
函数
指针 虚
函数
指针**(virtual function pointer)*...
计算机相乘求和的
函数
,Excel五大求和操作,除了sum
函数
你
知道
有几个?-excel乘法
函数
...
说到数据求和,可能90%的朋友第一时间想到的求和
函数
就是sum
函数
。因为这个
函数
可以
快速
的对数据进行单一维度或多维度数据求和。今天我们来学习一下,数据求和过程中,5个高效的求和公式。一:Sum
函数
一秒
快速
求和案例说明:对人员1-6月销售数据进行一秒
快速
求和
函数
公式:=SUM(D2:I2)
函数
说明:我们选择数据区域后,按Alt+=,这样即可对数据区域进行
快速
的一秒求和操作。是不是比单独的输入Sum函...
C语言中
函数
指针和回调
函数
的详解
函数
指针:指向
函数
的指针变量。 因此“
函数
指针”本身首先应是指针变量,只不过该指针变量指向
函数
。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向
函数
。如前所述,C在编译时,每一个
函数
都有一个入口地址,该入口地址就是
函数
指针所指向的地址。有了指向
函数
的指针变量后,可用该指针变量调用
函数
,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。
函数
指针有两个用途:调用
函数
和做
函数
...
C#
111,120
社区成员
642,537
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章