方法一:
start = clock();
while( (BITSIZE-sizeof(int)*index)>=sizeof(int) )
{
//printf("%d %d\t",( *(int *)((char*)bits+sizeof(int)*index) ),(*(bits+index)));
//result |= ( *(int *)((char*)bits+sizeof(int)*index) );
result |= ( *(bits+index) );
index++;
}
if(result==0)
printf("bits is all 0!\n");
else
printf("bits is not all 0!\n");
finish = clock();
printf( "%d %d %d tick\n",start,finish, finish - start );
方法二:
start = clock();
while( (BITSIZE-sizeof(int)*index)>=sizeof(int) )
{
if( *(bits+index)==0 )
{
index++;
continue;
}
else
break;
}
if(index==(BITSIZE/sizeof(int)))
printf("bits is all 0!\n");
else
printf("bits is not all 0!\n");
finish = clock();
printf( "%d %d %d tick\n",start,finish, finish - start );
方法一和方法二的效率基本一致
位操作效率比较

被折叠的 条评论
为什么被折叠?



