我试图在 64 位数字中找到两个 1 的位置。在这种情况下,它们位于第 0 位和第 63 位。这里的代码返回 0 和 32,只对了一半。为什么这不起作用?
#include<stdio.h>
void main()
{
unsigned long long number=576460752303423489;
int i;
for (i=0; i<64; i++)
{
if ((number & (1 << i))==1)
{
printf("%d ",i);
}
}
}