C语言:位运算

#include<stdio.h>
int check_bit(unsigned int number,unsigned int bit);
int main(void){
    unsigned int number,bit;
    printf("input a number and a bit position:");
    while(scanf("%u%u",&number,&bit)==2){
        printf("bit %u of %u is %d\n",bit,number,check_bit(number,bit));
        printf("input a number and a bit position:");
    }
    printf("quit\n");
    return 0;
}
int check_bit(unsigned int number,unsigned int bit){
    return (number>>bit)&1;
}
#include<stdio.h>
int count_on(int n);
int main(void){
    int n;
    printf("input a number:");
    while(scanf("%d",&n)==1){
        printf("%d--bit on number:%d\n",n,count_on(n));
        printf("input a number:");
    }
    printf("quit\n");
}
int count_on(int n){
    int count=0;
    while(n){
        count+=n%2;
        n=n>>1;
    }
    return count;
}
#include<stdio.h>
int bin_dec(char *p);
char *pbin="11001001"; 
int main(void){
    printf("bin:%s,dec:%d",pbin,bin_dec(pbin));
    return 0;
}
int bin_dec(char *p){
    int dec=0;
    while(*p!='\0'){
        dec=(dec<<1)+ *p++ -'0';
    }
    return dec;
}

猜你喜欢

转载自www.cnblogs.com/lyt888/p/12557912.html
今日推荐