获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列(C语言)
程序员文章站
2022-07-14 23:42:07
...
#include<stdio.h>
#include<stdlib.h>
//输出奇偶位二进制序列函数
void odd_even_bity(int n){
int i; //变量i用以遍历n、len1和len2
int count = 0; //变量count判断奇偶位
int odd = 0; //变量odd用以保存奇数位
int even = 0; //变量even用以保存偶数位
int len1 = 0; //变量len1保存奇数位数量
int len2 = 0; //变量len2保存偶数位数量
for (i = n; i; i >>= 1){ //遍历n的每一个二进制位
if (!(count & 1)){ //若该位是奇数位
odd |= (i & 1) << len1;
//将该数与1相与,得该数的最低位,再左移len1位与odd相或
++len1; //len1加1(奇数位数量加1)
}
else {
even |= (i & 1) << len2;
//将该数与1相与,得该数的最低位,再左移len2位与odd相或
++len2; //len2加1(偶数位数量加1)
}
++count; //count加1(在奇数偶数之间变换)
}
printf("%d的奇数位二进制序列是:", n); //打印提示信息
for (i = len1 - 1; i>= 0; --i){ //i从len1-1数字遍历到0
printf("%d", odd >> i & 1); //打印输出结果
}
printf("\n"); //输出换行
printf("%d的偶数位二进制序列是:", n); //打印提示信息
for (i = len2 - 1; i >= 0; --i){ //i从len2-1数字遍历到0
printf("%d", even >> i & 1); //打印输出结果
}
printf("\n"); //输出换行
}
//主函数
int main(){
odd_even_bity(20); //调用输出奇偶位二进制序列函数
system("pause");
return 0;
}
推荐阅读
-
获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
-
获取一个数的二进制序列中所有的偶数位和奇数位, 分别输出其二进制序列
-
【C练】获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
-
获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列
-
获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
-
.获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
-
.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
-
获取一个数二进制序列中所有的偶数位和奇数位,并输出二进制序列。
-
一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
-
C语言获取一个数二进制所有偶数位和奇数位分别输出二进制序列