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

题目:

获取一个整数二进制序列中所有的偶数位奇数位分别打印出二进制序列

                    

 =========================================================================

                       

思路:

总体思路:

(一). 输入数据

                         

(二). 打印奇数位

使用 for循环 循环产生 1~32 之间的偶数

使用 移位操作符 移动偶数位移动后就是奇数位

这时再 按位与1 取出当前位

进行打印。打印完奇数后进行 换行

                     

(三). 打印偶数位

使用 for循环 循环产生 1~32 之间的奇数

使用 移位操作符 移动奇数位移动后就是偶数位

这时再 按位与1 取出当前位

进行打印。打印完奇数后进行 换行

                


                 

第一步:

(1). 输入数据 -- scanf()函数

                     

实现代码:

#include 
int main()
{
	//输入数据:
	int n = 0;
	scanf("%d", &n);


	return 0;
}

实现图片:

                 


                 

第二步:

打印奇数位

             

(1).使用 for循环 循环产生 1~32 之间的偶数

            

(2).使用 移位操作符 移动偶数位移动后就是奇数位

这时再 按位与1 取出当前位

                

(3).进行打印。打印完奇数后进行 换行

                     

实现代码:

#include 
int main()
{
	//输入数据:
	int n = 0;
	scanf("%d", &n);

	//打印 奇数位 :
	printf("奇数位:");
	//使用 for循环 循环产生 1~32 之间的偶数
	int i = 0;
	for (i = 30; i >= 0; i -= 2)
	//循环产生的偶数位:30 28 26 ...
	{
		//使用 移位操作符 和 按位与 来取出当前位 并打印
		printf("%d", (n >> i) & 1);
		//移位后就是奇数位,按位与1 取出最低位
	}

	//换行
	printf("\n");



	return 0;
}

实现图片:

                 


                  

第三步:

打印偶数位

             

(1).使用 for循环 循环产生 1~32 之间的奇数

            

(2).使用 移位操作符 移动奇数位移动后就是偶数位

这时再 按位与1 取出当前位

              

实现代码:

#include 
int main()
{
	//输入数据:
	int n = 0;
	scanf("%d", &n);

	//打印 奇数位 :
	printf("奇数位:");
	//使用 for循环 循环产生 1~32 之间的偶数
	int i = 0;
	for (i = 30; i >= 0; i -= 2)
	//循环产生的偶数位:30 28 26 ...
	{
		//使用 移位操作符 和 按位与 来取出当前位 并打印
		printf("%d", (n >> i) & 1);
		//移位后就是奇数位,按位与1 取出当前位
	}

	//换行
	printf("\n");

	//打印 偶数位 :
	printf("偶数位:");
	//使用 for循环 循环产生 1~32 之间的奇数
	for (i = 31; i >= 1; i -= 2)
		//循环产生的奇数位:31 29 27 ...
	{
		//使用 移位操作符 和 按位与 来取出当前位 并打印
		printf("%d", (n >> i) & 1);
		//移位后就是偶数位,按位与1 取出当前位
	}

	return 0;
}

实现图片:

                    

最终代码和实现效果

最终代码:

#include 
int main()
{
	//输入数据:
	int n = 0;
	scanf("%d", &n);

	//打印 奇数位 :
	printf("奇数位:");
	//使用 for循环 循环产生 1~32 之间的偶数
	int i = 0;
	for (i = 30; i >= 0; i -= 2)
	//循环产生的偶数位:30 28 26 ...
	{
		//使用 移位操作符 和 按位与 来取出当前位 并打印
		printf("%d", (n >> i) & 1);
		//移位后就是奇数位,按位与1 取出当前位
	}

	//换行
	printf("\n");

	//打印 偶数位 :
	printf("偶数位:");
	//使用 for循环 循环产生 1~32 之间的奇数
	for (i = 31; i >= 1; i -= 2)
		//循环产生的奇数位:31 29 27 ...
	{
		//使用 移位操作符 和 按位与 来取出当前位 并打印
		printf("%d", (n >> i) & 1);
		//移位后就是偶数位,按位与1 取出当前位
	}

	return 0;
}

实现效果:

你可能感兴趣的:(没事做道题:C语言,c语言,c#,c++)