当前位置:网站首页>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.
运行结果

可以点赞关注收藏一手哦。谢谢观看噢!
边栏推荐
猜你喜欢
随机推荐
期货开户交返是行内公开的秘密
扫雷小游戏
Knowing the inorder traversal of the array and the preorder traversal of the array, return the postorder history array
业务测试如何避免漏测 ?
使用jOOQ将Oracle风格的隐式连接自动转换为ANSI JOIN
What is the function of the JSP Taglib directive?
Trie详解
[HCIP] BGP Small Experiment (Federation, Optimization)
632. Minimum interval
unity2D横版游戏教程5-UI
CVPR 2022 | SharpContour:一种基于轮廓变形 实现高效准确实例分割的边缘细化方法
Arduino Basic Syntax
期货公司开户实力经纪业务的规模
好的期货公司开户让人省心省钱
基于数据驱动的变电站巡检机器人自抗扰控制
Day11 shell脚本基础知识
[21-Day Learning Challenge] A small summary of sequential search and binary search
渗透测试与攻防对抗——渗透测试基础
青蛙跳台阶
Grid false data injection attacks detection based on coding strategy








