Work_8

写一个函数返回参数二进制中 1 的个数
比如: 15  =>  0000 1111  =>  4 个 1

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

int Count_one_bits(unsigned int value){
    int count = 0;
    for (int i = 0; i < 8; i++){
        if ((value >> i) & 1){
            count++;
        }
    }
    return count;
}

int main(){
    int input;
    printf("请输入一个整数:\n");
    scanf("%d", &input);
    printf("该整数的二进制中1的个数为:%d", Count_one_bits(input));
    printf("\n");
    system("pause");
    return 0;
}

 

获取一个数二进制序列中所有的偶数位和奇数位,
分别输出二进制序列。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

void Bit(int input){
    int temp = 0;
    printf("该整数二进制的偶数位为:\n");
    for (int i = 31; i > 0; i = i - 2){
        temp = (input >> i) & 1;
        printf("%d ", temp);
    }
    printf("\n");
    printf("该整数二进制的奇数位为:\n");
    for (int i = 30; i >= 0; i = i - 2){
        temp = (input >> i) & 1;
        printf("%d ", temp);
    }
}

int main(){
    int input;
    printf("请输入一个整数:\n");
    scanf("%d", &input);
    Bit(input);
    printf("\n");
    system("pause");
    return 0;
}

 

输出一个整数的每一位。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

void Number(int input){
    //从最高为开始打印
    if (input < 9){
        printf("%d ", input);
        return;
    }
    Number(input / 10);
    printf("%d ", input % 10);
    return;

    ////从最低位开始打印
    //if (input > 9){
    //    printf("%d  ", input % 10);
    //    return Number(input / 10);
    //}
    //printf("%d ", input);
}

int main(){
    int input ;
    printf("请输入一个整数:\n");
    scanf("%d", &input);
    printf("该整数的每一位为:\n");
    Number(input);
    printf("\n");
    system("pause");
    return 0;
}

 

编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
输入例子:
1999 2299
输出例子:7

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

int Compare(int input1, int input2){
    int count = 0;
    for (int i = 0; i < 16; i++){
        if (((input1 >> i) & 1) != ((input2 >> i) & 1)){
            count++;
        }
    }
    return count;
}

int main(){
    int input1, input2;
    printf("请输入两个整数:\n");
    scanf("%d %d", &input1, &input2);
    printf("%d", Compare(input1, input2));
    printf("\n");
    system("pause");
    return 0;
}

 

posted @ 2018-12-24 23:42  lkimprove  阅读(128)  评论(0编辑  收藏  举报