В числе сосчитать количество нулевых битов расположенных строго между единичными

Например: 1000101001011 - здесь два бита.

code: #cpp
#include <stdio.h>
int main()
{
	long num;
	int i,res = 0;
	printf("Enter number:");
	scanf("%ld",&num);
	for(i = 0;i < sizeof(num) * 8 - 3;i++)
		if((num & (7 >> i))/*маска*/ == 6/*101b*/)
			res++;
	printf("Result: %d\n", res);
	return(0);
}

автор: theos

Поделиться:

Похожие статьи: