获取一个数二进制中的奇数位与偶数位
打印n的奇数位 n >>i (i属于奇数 使n的二进制位向右移动i位)
打印n的偶数位 n >>i (i属于偶数 使n的二进制位向右移动i位)
#include <stdio.h>
void print_binary_digits(int n);
void print_odd_digits(int n);
void print_even_digits(int n);
int main()
{
int n = 0;
scanf("%d", &n);
print_binary_digits(n);//打印二进制位
print_odd_digits(n);//打印奇数位
print_even_digits(n);//打印偶数位
return 0;
}
void print_binary_digits(int n)
{
printf("二进制位:");
for (int i = 0; i < 32; i++)
{
printf("%d", 1 & (n >> i));
}
printf("\n");
}
void print_odd_digits(int n)
{
printf("奇数位:");
for (int i = 0; i < 32; i += 2)
{
printf("%d", 1 & (n >> i));
}
printf("\n");
}
void print_even_digits(int n)
{
printf("偶数位:");
for (int i = 1; i < 32; i += 2)
{
printf("%d", 1 & (n >> i));
}
printf("\n");
}