当前位置:网站首页>C语言:打印整数二进制的奇数位和偶数位
C语言:打印整数二进制的奇数位和偶数位
2022-08-02 00:15:00 【某某小卢】
题目
打印整数二进制的奇数位和偶数位
代码逻辑和思路
本题是要打印数的二进制的奇数位以及偶数位。
二进制的每一位要么是1,要么是0.我们可以通过左移操作符(<<)或者右移操作符(>>),来访问到二进制的每一位数字。因为二进制一共有32位,我们可以通过右移操作符(>>)来访问每一位,然后,右移操作符会在左边补符号位,右边的话上一次判断打印过的,会变移走,所以可以不断打印每一位二进制数。我们只要控制好循环的次数,利用两个奇数之间相差2.将每次循环语句写成i=i-2。就可以只访问奇数位。同理,可以只访问偶数位。
代码
#include<stdio.h>
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.
运行结果

可以点赞关注收藏一手哦。谢谢观看噢!
边栏推荐
猜你喜欢
随机推荐
DFS详解
傅立叶变换相关公式
业务测试如何避免漏测 ?
Are test points the same as test cases?
青蛙跳台阶
How does JSP use request to get the real IP of the current visitor?
Arduino Basic Syntax
管理基础知识21
js中内存泄漏的几种情况
JSP out. The write () method has what function?
期货开户调整交易所保证金标准
Difference between JSP out.print() and out.write() methods
抖音数据接口API-获取用户主页信息-监控直播开启
go笔记——map
Looking back at 5 recessionary times in history: How might this time be different?
管理基础知识20
Kotlin协程:创建、启动、挂起、恢复
MLX90640 红外热成像仪测温模块开发笔记(完整版)
BGP first experiment
哪里有期货开户的正规途径?








![[21-Day Learning Challenge] A small summary of sequential search and binary search](/img/81/7339a33de3b9e3aec0474a15825a53.png)