C语言学习 - 0005 给定值给定位数储存

 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 }

 

posted @ 2015-11-18 16:10  Yx37412  阅读(198)  评论(0编辑  收藏  举报