C语言d初学者-基础的三篇代码-7-
1.递归方式实现打印一个整数的每一位
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void print(int n)
{
if (n>9)
print(n / 10);
printf("%d ", n % 10);
}
int main()
{
print(1234);
system("pause");
return 0;
}
运行结果
2.写一个函数返回参数二进制中 1 的个数
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
int count_one_bit(unsigned int n)
{
int count = 0;
while (n)
{
if (n % 2 == 1)
count++;
n = n / 2;
}
return count;
}
int main()
{
int num = 0;
printf("请输入:>");
scanf("%d", &num);
int ret = count_one_bit(num);
printf("ret = %d\n", ret);
system("pause");
return 0;
}
运行结果
3.取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
#define _CRT_SECURE_NO_WARNINGS 1
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);
system("pause");
return 0;
}
运行结果