C语言——获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列
程序员文章站
2022-07-14 23:41:37
...
【问题描述】:获取一个数二进制序列中所有的偶数位和奇数位,分别输出其奇数和偶数的二进制序列。
例如:30的二进制序列0000 0000 0000 0000 0000 0000 0001 1110
偶数序列为:0000 0000 0000 0011
奇数序列为:0000 0000 0000 0110
【解题思路】:要得到偶数序列,先将每个偶数位移到最后一位,然后按位与1,就得到了这一位;要得到奇数序列,先将每个奇数位移到最后一位,然后按位与1,就得到了这一位。
一个数按位与1,结果为0,那个数就是0;结果为1,那个数就是1。
【参考代码】:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num = 0;
printf("请输入一个整数:");
scanf("%d", &num);
int i = 0;
printf("偶数序列为:");
for (i = 31; i >= 1; i -= 2)
{
printf("%d ", ((num >> i) & 1));
}
//最高的偶数位向右移动31位到最后一位,最低偶数位向右移动1位到最后一位
printf("\n");
printf("奇数序列为:");
for (i = 30; i >= 0; i -= 2)
{
printf("%d ", ((num >> i) & 1));
}
//最高的奇数位向右移动30位到最后一位,最低奇数数位向右移动0位到最后一位
printf("\n");
system("pause");
return 0;
}
上一篇: 时间格式化
推荐阅读
-
获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
-
获取一个数的二进制序列中所有的偶数位和奇数位, 分别输出其二进制序列
-
【C练】获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
-
获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列
-
获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
-
.获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
-
.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
-
获取一个数二进制序列中所有的偶数位和奇数位,并输出二进制序列。
-
一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
-
C语言获取一个数二进制所有偶数位和奇数位分别输出二进制序列