我试图在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);
}
}
}
Run Code Online (Sandbox Code Playgroud) c ×1