小程序合集

来源:互联网 发布:周立功linux开发板 编辑:程序博客网 时间:2024/04/29 18:10

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

// 返回 1的位数 


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

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


 

 

 

 

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

// 返回 1的位数 

#define _CRT_SECURE_NO_WARNINGS 1

 

   #include<stdio.h>

int two(int i)

{

 

int count = 0;

 

 

while (i > 0)

{

 

if ((i & 1) == 1)

count++;

i = i >> 1;

}

return count;

}

 

int main()

{

int n = 0;

int temp = 0;

int num = 0;

printf("please enter a number\n");

scanf("%d", &n);

temp = n;

num= two(n);

printf("%d中含有%d个1", temp, num);

}

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

#define _CRT_SECURE_NO_WARNINGS 1

 

 #include<stdio.h>

int main()

{

int i = 0;

int a[20] = { 0 };

int b[20] = { 0 };

int n = 0;

int k = 0;

printf("please a number \n");

scanf("%d", &n);

for (i = 1; i <= 32; i++)

{

if ((i % 2) != 0)

{

if ((n & 1) == 1)

a[k] = 1;

else

a[k] = 0;

k++;

}

else

{

k--;

if ((n & 1) == 1)

b[k] = 1;

else

b[k] = 0;

k++;

}

n = n >> 1;

}

for (i = 0; i < 16; i++)

printf("%d", a[i]);

printf("\n");

for (i = 0; i < 16; i++)

printf("%d", b[i]);

getchar();

}

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

#define _CRT_SECURE_NO_WARNINGS 1

 

 #include<stdio.h>

#include<math.h>

#include<stdlib.h>

 int main()

 {

     int num = 0;

     int i = 0;

     int count = 0;

     int num1 = 0;

 double k = 0;

     int a[100] = { 0 };

     printf("please enter a number \n");

     scanf("%d", &num);

     num1 = num;

     while (num>9)

     {

         num = num / 10;

         count++;

     }

 k = count;

     for (i = 0; i <= count; i++)

     {

 

        a[i] = num1 / (pow(10.0, k));

num1 = num1 - (a[i] * pow(10.0, k));

k = k - 1;

        printf("%d 位 is %d \n", i + 1, a[i]);

    }

 system("pause");

 

 }

 

 

 

 

 

 

 

 

 

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

#define _CRT_SECURE_NO_WARNINGS 1

   #include<stdio.h>

 

  int main()

   {

     int m = 0;

     int n = 0;

     int count = 0;

    printf("please enter m\n");

     scanf("%d", &m);

     printf("please enter n\n");

     scanf("%d", &n);

     m = m^n;

    while (m>0)

     {

         if ((m & 1) == 1)

             count++;

        m = m >> 1;

    }

     printf("二进制中有%d个不同", count);

 }

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击