/*
* 当前版本:v1.0.0
*
* 作者:linqxxy
*
/* 完成日期:2019.3.29
/*
* 函数名称:count_one_bits
*
* 函数功能:返回参数二进制中 1 的个数
*
* 入口参数:n
*
* 出口参数:空
*
* 返回类型:void
*/
int count_one_bits(unsigned int n)
{
int count = 0;
while (n)
{
if (n % 2 == 1)
{
count++;
}
n >>= 1;
}
return count;
}
/*
* 当前版本:v1.0.1
*
* 函数名称:count_one_bits2
*
* 函数功能:返回参数二进制中 1 的个数
*
* 入口参数:n
*
* 出口参数:空
*
* 返回类型:void
*/
int count_one_bits2(unsigned int n)
{
int count = 0;
for (int i = 0; i < 32; i++)
{
if (n&(1 << i))
{
count++;
}
}
return count;
}
/*
* 函数名称:number
*
* 函数功能:.获取一个数二进制序列中所有的偶数位和奇数位,
*分别输出二进制序列。
*
*
* 入口参数:n
*
* 出口参数:空
*
* 返回类型:void
*/
void number(int n)
{
for (int i = 31; i >=1; i-=2)
{
printf("%2d", ((n >> i) & 1));
}
printf("\n");
for (int i = 30; i >= 0; i -= 2)
{
printf("%2d", ((n >> i) & 1));
}
}
/*
* 函数名称:digits
*
* 函数功能:输出一个整数的每一位
*
*
* 入口参数:num
*
* 出口参数:空
*
* 返回类型:void
*/
void digits(int num)
{
int count = 0;
int n = num;
while (n!=0)
{
n/= 10;
count++;
}
for (int i = 0; i < count; i++)
{
int j =num % 10;
printf("%2d\n", j);
num /= 10;
}
}
/*
* 函数名称:difbit
*
* 函数功能:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
*
* 入口参数:num1,num2
*
* 出口参数:count
*
* 返回类型:int
*/
int difbit(int num1,int num2)
{
int count = 0,i=0;
i = num1 ^ num2;
while (i)
{
i = i & (i - 1);
count++;
}
return count;
}
【C】习题练习。
最新推荐文章于 2023-10-21 20:21:46 发布