1 #include<stdio.h>
2 void main()
3 {
4 void readi(int* num_small,int* num_big,int* num_1,int* num_2);
5 int stand(int num_small,int num_big);
6 int dif(int num_small,int num_1,int num_2,int stand);
7 int num_1=0,num_2=1,num_new=0;
8 int i1=0;
9 int i2=0;
10 int stand_1=0;
11 readi(&i1,&i2,&num_1,&num_2);
12 stand_1=stand(i1,i2);
13 num_new=dif(i1,num_1,num_2,stand_1);
14 printf("以前的数%x\n,现在的数%x",num_1,num_new);
15 if((getchar())=='\n')
16 getchar();
17 }
18 void readi(int* num_small,int* num_big,int* num_1,int* num_2)
19 {
20 printf("输入低位");
21 scanf("%d",num_small);
22 printf("输入高位");
23 scanf("%d",num_big);
24 printf("输入待处理数字",num_1);
25 scanf("%x",num_1);
26 printf("输入插入数字",num_2);
27 scanf("%x",num_2);
28 }
29 int stand(int num_small,int num_big)
30 {
31 if(num_small>num_big)
32 printf("wrong!");
33 else{
34 int a=num_small-1;
35 int b=0;
36 int c=1;
37 c=c<<a;
38 for(;a<=num_big-1;a++){
39 b=b+c;
40 c=c<<1;
41 }
42 return(b);
43 }
44 }
45 int dif(int num_small,int num_1,int num_2,int stand)
46 {
47 printf("%x\n",stand);
48 int stand_fan=~stand;
49 printf("%x\n%x\n",stand_fan,num_1);
50 int num_new=num_1&stand_fan;
51 printf("%x\n",num_new);
52 num_small=num_small-1;
53 int num_3=num_2<<num_small;
54 printf("%x\n",num_3);
55 num_new=num_new|num_3;
56 printf("%x\n",num_new);
57 return(num_new);
58 }