如何用c语言寻找十进制数二进制的奇数位.偶数位.任意位

           在编程中,我们经常需要用二进制来进行各种运算,有时甚至需要用到二进制的特定位来进行运算,下面我用c语言来展示如何找你想用的哪一位。首先,我先介绍一个快速将一个数转化成二进制的程序:
#include <stdio.h>  
int main()  
{  
    int num=0,i=0;  
    char p;  
    scanf("%d",&num);  
    for (i=31; i>=0;i--)  
    {  
        p=(num>>i)&1;  
        printf("%d",p);  
    }  
    return 0;  
} 

         在这个程序中,通过按 位与 & (按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只要对应的二个二进位都为1时,结果位就为1。参与运算的两个数均以补码出现)每次通过设定i值移位,循环输出它的单个十进制,就得到它的二进制序列。

   比如 数字10:

      

          每次都移动i个长度,然后与1进行与运算,因为不管二进制是0还是1,它与1进行与运算之后仍是本身。      

          与出每一个二进制并输出就找到了这个数的二进制,同样的道理,我们如果想找一个二进制的奇数位或者是偶数位,只需要改变初始的位数并将i- -变成i=i-2即可。

 例如找偶数位:

    #include <stdio.h>  
    int main()  
    {  
        int num=0,i=0;  
        char p;  
        scanf("%d",&num);  
        for (i=31; i>=0;i=i-2)  
        {  
            p=(num>>i)&1;  
            printf("%d",p);  
        }  
        return 0;  
    }  

奇数位:
    #include <stdio.h>  
    int main()  
    {  
        int num=0,i=0;  
        char p;  
        scanf("%d",&num);  
        for (i=30; i>=0;i=i-2)  
        {  
            p=(num>>i)&1;  
            printf("%d",p);  
        }  
        return 0;  
    }  

至于找一个特定的位数,就更加简单,计算出移动的位数,直接移位就可以了。


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值