C语言操作符的应用

1.写一个函数返回参数二进制中 1 的个数 
比如: 15 0000 1111 4 个 1 
程序原型: 
int count_one_bits(unsigned int value) 

// 返回 1的位数 

int countBit(int x)
{
	int c = 0;
	while (x)
	{
		x &= (x - 1);//x=x&(x-1)
		c++;
	}
	return c;
}
int main()
{
	int x = 15;
	int c = countBit(x);
	printf("%d\n", c);
	return 0;
}

 

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

#include<stdio.h>
void print_num(unsigned value)
 {
	int count = 0;//计算二进制位数
	int a[32] = { 0 };
	int i = 0;
	while (value) 
	{
        a[i++] = value % 2;
        value /= 2;
        count++;
    }
    printf("奇数序列\n");
	for (i = count; i >= 0; i -= 2) 
	{
         printf("%d ", a[i]);
     }
	printf("\n");
	printf("偶数序列\n");
	for (i = count - 1; i >= 0; i -= 2) 
	{
		printf("%d ", a[i]);
     }
	printf("\n");
 }
int main()
{
    printf("获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列(测试数字01011)\n");
    int value = 11;//01011
    print_num(value);
    return 0;
}

 

3. 输出一个整数的每一位。 

#include <stdio.h>
int main()
{
	int a[10]=0;
	int n=0;
	int i=0;
	printf("请输入一个数:");
	scanf("%d",&n);
	while(n!=0)
	{
		a[i++]=n%10;
		n/=10;
	}
	for(i--;i>=0;i--)
	printf("%d ",a[i]);

} 


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

#include <stdio.h>
void fun(int m,int n)
{
    int t = 0;
    int count = 0;
    t=m^n;//得到不同的比特位数
    while(t)
    {
        t&=(t-1);//得到比特位为一的个数
        count++;
    }
    printf("count=%d\n",count); 
}
int main()
{
    int m = 0;  
    int n = 0; 
    int count = 0;
    printf("输入两个整数:");
    scanf("%d%d",&m,&n);
    fun(m,n);
    return 0;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值