您的位置:首页 > 其它

1、写一个函数返回参数二进制中 1 的个数(三种方法)2、获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列3、输出一个整数的每一位。4、两个int(32位)整数m和n的二进制表达中,有多

2018-03-31 08:52 866 查看
写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 11、只能处理正数
#include <stdio.h>
int main()
{        int count = 0 ;        int num = 15 ;        //0000 1111        while(num)            {                if( num%2==1)                        count ++;                num = num /2;            }        printf ("%d\n", count);        return 0;   }2、#include <stdio.h>
int main()
{        int count = 0 ;        int num = -1 ;        int i = <
4000
span style="color:rgb(39,42,216);">0;        for (i=0;i<32;i++)            {                if (((num>>1)&1)==1)                        count ++;            }                        printf ("%d\n", count);        return 0;    }3、按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只要对应的二个二进位都为1时,结果位就为1。参与运算的两个数均以补码出现。C/C++中的“按位与”规则:1&1=11&0=00&1=00&0=0
#include<stdio.h>int main (){    int count = 0;    int num = 15;    while(num)    {    num= num&(num-1);    count ++;    }    printf ("%d",count);    return 0;}2.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。 #include<stdio.h>int main(){    int arr[32];    int m=0,i=0,count=0;    printf("请输入一个十进制数:\n");    scanf("%d",&m);    for(i=0;m!=0;i++)    {        arr[i]=m%2;        m=m/2;        count=i+1;    }    for(;count<32;count++)    {        arr[count]=0;    }    printf("转换为二进制后奇数位为:\n");    for(i=31;i>=0;i-=2)    {        printf("%d ",arr[i]);    }    printf("\n");    printf("转换为二进制后偶数位为:\n");    for(i=30;i>=0;i-=2)    {        printf("%d ",arr[i]);    }    printf("\n");    return 0;}
3 输出一个整数的每一位 #include <stdio.h>
int main()
{
    int data;
    int temp;
    printf("请输入一个整数:");
    scanf("%d",&data);
    while(data>0)
    {
        temp = data%10;
        printf ("%d",temp);
        data=data/10;
    }
    return 0;
}
4.两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?#include <stdio.h>
int main(){    int m=0;    int n=0;    int q=0;    int i=0;    int count=0;    printf("请输入两个数字:");    scanf("%d%d",&m,&n);    q=m^n;  // 两个数按位异或,对应不同的位将会置1    while(q)    {        q=q&(q-1);  //按位与方法计算一个整数中比特位为1的个数        count++;    }    printf("count=%d",count);    system("pause");    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐