C语言:打印整数二进制的奇数位和偶数位

题目

打印整数二进制的奇数位和偶数位

 代码逻辑和思路

本题是要打印数的二进制的奇数位以及偶数位。

二进制的每一位要么是1,要么是0.我们可以通过左移操作符(<<)或者右移操作符(>>),来访问到二进制的每一位数字。因为二进制一共有32位,我们可以通过右移操作符(>>)来访问每一位,然后,右移操作符会在左边补符号位,右边的话上一次判断打印过的,会变移走,所以可以不断打印每一位二进制数。我们只要控制好循环的次数,利用两个奇数之间相差2.将每次循环语句写成i=i-2。就可以只访问奇数位。同理,可以只访问偶数位。

代码

#include
int main()
{
	int a;
	scanf_s("%d", &a);
	printf("奇数位:");
	for (int i = 31; i >> 1; i = i - 2)
	{
		printf("%d ", (a >> i) & 1);
	}
	printf("\n");
	printf("偶数位:");
	for (int i = 30; i >> 1; i -= 2)
	{
		printf("%d ", (a >> i) & 1);
	}
	return 0;
}

这里值得一提的是:(a>>i)&1,这里比较难理解,&这个操作符,有0为0,双一为1,如果二进制是0,就刚好打印0,如果是1,刚好打印1.

运行结果

C语言:打印整数二进制的奇数位和偶数位_第1张图片

 可以点赞关注收藏一手哦。谢谢观看噢!

你可能感兴趣的:(C语言,java,开发语言,c语言)