当前位置:网站首页>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.
运行结果
可以点赞关注收藏一手哦。谢谢观看噢!
边栏推荐
- 管理基础知识20
- Arduino Basic Syntax
- Graphical LeetCode - 1161. Maximum Sum of In-Layer Elements (Difficulty: Moderate)
- Trie详解
- 使用jOOQ将Oracle风格的隐式连接自动转换为ANSI JOIN
- Knowing the inorder traversal of the array and the preorder traversal of the array, return the postorder history array
- 青蛙跳台阶
- 基于编码策略的电网假数据注入攻击检测
- 460. LFU cache
- Are test points the same as test cases?
猜你喜欢
ICML 2022 || 局部增强图神经网络GNN,在 GCN 和 GAT基础上 平均提高了 3.4% 和 1.6%
Arduino Basic Syntax
go笔记之——goroutine
Unknown CMake command "add_action_files"
实现删除-一个字符串中的指定字母,如:字符串“abcd”,删除其中的”a”字母,剩余”bcd”,也可以传递多个需要删除的字符,传递”ab”也可以做到删除”ab”,剩余”cd”。
好的期货公司开户让人省心省钱
期货开户调整交易所保证金标准
磁盘与文件系统管理
08-SDRAM: Summary
Redis - message publish and subscribe
随机推荐
Redis - message publish and subscribe
Simpson's paradox
已知中序遍历数组和先序遍历数组,返回后序遗历数组
ES6对箭头函数的理解
面试:简单介绍你参与的一个项目
Redis 相关问题
bgp aggregation reflector federation experiment
期货公司开户实力经纪业务的规模
Web开发
els block deformation judgment.
What is the function of the JSP Taglib directive?
基于注意力机制的多特征融合人脸活体检测
go笔记——map
JSP how to obtain the path information in the request object?
go笔记记录——channel
unity2D横版游戏教程5-UI
2022/08/01 学习笔记 (day21) 泛型和枚举
MYSQL(基本篇)——一篇文章带你走进MYSQL的奇妙世界
nodeJs--各种路径
路由策略