【笔记】获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
来源:互联网 发布:淄博市网络教研平台 编辑:程序博客网 时间:2024/04/29 21:28
2.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
方法一:
注意:
(1)在第二个for循环的时候,记得置j=0,因为在上面已经将它加到15达到最大,若不管则发生越界(2)这种方法也属于按位与,只是如果不用数组,那么输出的是二进制的逆序
(3)但是这种方法创建了数组,占用空间,理论上不够优化
#include <stdio.h>int main(){int i=0,j=0;char arr1[16]; //定义2个数组来存放二进制序列char arr2[16];int num=0;scanf("%d",&num);for(i = 0; i < 32; i += 2){arr1[j] = ((num >> i) & 1); //奇数位j++;} for(i = 1,j=0; i < 32; i += 2){arr2[j] = ((num >> i) & 1); //偶数位j++;}printf("奇数位为:"); //输出数组里的二进制奇数序列for (i = 15; i >= 0; i--){printf("%d",arr1[i]);}printf("\n");printf("偶数位为:"); //输出数组里的二进制偶数序列for (i = 15; i >= 0; i--){printf("%d",arr2[i]);}return 0;}
方法二:(比较优化)
注意:
(1)这里的每次移动31,29...位数都是相对于原来的2进制序列来说,其实每次相对于上一次就移动了2位
(2)这种方法也是按位与的方法得到某位二进制的,比如说看奇数位,那每次向右移动31位,再与1得到第一位情况,下一次移动29位与1得到第三位,以此类推,所以奇数列可得,类似的偶数列只是开始移动30位
#include <stdio.h> int main () { int num=0,i=0; scanf("%d",&num); printf("奇数序列为:"); for(i=31;i>=0;i-=2) //也是控制32次(每个整型数按32位来算),只是从31位开始移动 { printf("%d ",(num>>i)&1); //第一次向右移动31位和1与得到第一位情况,每次变化2位,即可得到奇数位情况 } printf("\n"); printf("偶数序列为:"); for(i=30;i>=0;i-=2) //向右移动30位,再与1所得结果是原来数字的第二位,再移28位... { printf("%d ",(num>>i)&1); // } printf("\n"); return 0; }
1 0
- 【笔记】获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 【C语言】获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- c语言:获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- C语言 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- 【C】获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- module不仅可以依赖library,还能依赖module
- POJ 3414 - Easy BFS - 六入口倒水问题
- WORDPRESS centos6.x安装
- nodejs整合银联网关支付
- 基于Opencv实现在MFC中显示图像
- 【笔记】获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- caffe实现多标签输入(multilabel、multitask)
- jquery入门(不定期更新)
- SpringBoot初始教程之数据库连接池(druid)(六)
- StringBuilder高性能用法总结
- 黑马程序员: IT技术学习线路图免费任性分享
- XML,DTD,XSD的区别
- Duilib创建窗口双击标题栏禁止窗口最大化
- 关于 控件抖动以及 互换位置的说写