思路:要判断一个整数的二进制偶数位是0还是1,则可以用这个整数和1或2进行&的用算,之后进行右移在进行&的用算,直到右移为0结束。
可以利用这种方法提取二进制数。
1 #include<stdio.h>
2 #define _CRT_SECURE_NO_WARNINGS
3
4 void Find_even(int a)
5 {
6 //int c;
7 //int a = 11;//0000 1011
8 //int b = 12;//0000 1100
9 // 36 0010 0100
10 //// 2 0000 0010
11 //c = a >> 2;
12 //printf("%d\n",c);
13 //获取偶数位:
14 printf("二进制中的偶数位序列为:\n");
15 int i = 32;
16 while(i>0)
17 {
18 i = i - 2;
19 int b = 0;
20 b = a >> i;
21 if ((b & 2) == 2)
22 {
23 printf("1");
24 }
25 else
26 {
27 printf("0");
28 }
29 }
30 printf("\n");
31 }
32
33 void Find_odd(int a)
34 {
35 //int c;
36 //int a = 11;//0000 1011
37 //int b = 12;//0000 1100
38 // 36 0010 0100
39 //// 1 0000 0001
40 //c = a >> 2;
41 //printf("%d\n",c);
42 //获取偶数位:
43 printf("二进制中的奇数位序列为:\n");
44 int i = 32;
45 while (i>0)
46 {
47 i = i - 2;
48 int b = 0;
49 b=a >> i;
50 if ((b & 1) == 1)
51 {
52 printf("1");
53 }
54 else
55 {
56 printf("0");
57 }
58 }
59 printf("\n");
60 }
61
62 int main()
63 {
64 int a;
65 printf("请输入一个整数:\n");
66 scanf("%d",&a);
67 Find_even(a);
68 Find_odd(a);
69
70 return 0;
71 }