1,
#include <stdio.h> int bit_1(int x) { int i; int y; int sum = 0; for(i = 0 ; i < 8 ; i++) { y = x % 2; x = x / 2; if(y == 1) { sum = sum + 1; } } return sum; } int main() { int x; printf("please input x \n"); scanf("%d",&x); printf("the number of '1' is %d\n",bit_1(x)); return 0; }2,
#include <stdio.h> #define MAX 32 void deal(int n,int p1,int p2,int num[]) { int i; int temp = 0; int k = 0; int a[MAX]; for(i = p1 - 1; i <= p2; i++) { temp = ( n >> i ) & 1; num[k] = temp; k++; } } void output(int p1,int p2,int num[]) { int i; int n; n = p2 - p1; for(i = n; i >= 0; i--) { printf("%d",num[i]); } } int main() { int n; int p1,p2; int num[MAX]={0}; printf("please input the int:"); scanf("%d",&n); printf("please input p1,p2:"); scanf("%d %d",&p1,&p2); deal(n,p1,p2,num); output(p1,p2,num); printf("\n"); return 0; }