当前位置:网站首页>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.
运行结果
可以点赞关注收藏一手哦。谢谢观看噢!
边栏推荐
猜你喜欢
随机推荐
攻防世界-web-Training-WWW-Robots
String splitting function strtok exercise
实现删除-一个字符串中的指定字母,如:字符串“abcd”,删除其中的”a”字母,剩余”bcd”,也可以传递多个需要删除的字符,传递”ab”也可以做到删除”ab”,剩余”cd”。
MySQL常用语句整理
What is Low-Code?What scenarios is low code suitable for?
BGP 第一次实验
工业信息物理系统攻击检测增强模型
Routing strategy
21.数据增强
06-SDRAM : SDRAM control module
渗透测试与攻防对抗——渗透测试基础
Automatic conversion of Oracle-style implicit joins to ANSI JOINs using jOOQ
信息物理系统状态估计与传感器攻击检测
JSP out.write()方法具有什么功能呢?
JSP内置对象out对象的功能简介说明
How does JSP use the page command to make the JSP file support Chinese encoding?
Multidimensional Correlation Time Series Modeling Method Based on Screening Partial Least Squares Regression of Correlation Variables
测试点等同于测试用例吗
146. LRU cache
C language character and string function summary (2)