【C语言习题】24.打印整数二进制的奇数位和偶数位


作业标题

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

作业内容

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

2.解题思路

首先我们需要输入数字,要创建一个scanf。然后要分奇偶,那么就要分别判断条件。

奇数位和偶数位有很多位,应该会用到循环。奇数和奇数,偶数和偶数里,相邻的差值为2,说明循环可能每次-2,然后进行位运算打印。

分别打印出二进制序列说明应该要用到位运算。

3.具体代码

#include <stdio.h>
int main() {
	int num = 0;
	printf("请输入一个数:");
	scanf("%d", &num);
	printf("偶数位:");
	for (int i = 31; i >= 1; i -= 2) {
		printf("%d ", (num >> i) & 1);
	}
	printf("\n");
	printf("奇数位:");
	for (int i = 30; i >= 0; i -= 2) {
		printf("%d ", (num >> i) & 1);
	}
	printf("\n");
	return 0;
}

打印:

在这里插入图片描述

4.代码讲解

这里我们重点讲一下两个for循环里面:

偶数:

  1. for (int i = 31; i >= 1; i -= 2):一个从31开始递减到1的循环,步长为2,用于遍历偶数位。

  2. printf("%d ", (num >> i) & 1);:将num右移i位,然后与1进行按位与操作,结果为1表示该位是1,为0表示该位是0。然后打印出该位的值。

奇数:

  1. for (int i = 30; i >= 0; i -= 2):一个从30开始递减到0的循环,步长为2,用于遍历奇数位。

  2. printf("%d ", (num >> i) & 1);:与之前类似,打印出奇数位的值。

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值