十进制与二进制互换

将十进制输出为二进制

编写函数,函数的参数是整数N,在函数中输出整数N的二进制形式。主函数中输入整数a和b,输出从a到b的所有整数的二进制形式。

#include<stdio.h>
#include<math.h>
int two(int n);
int main()
{
    int a,b,c;
    scanf("%d %d",&a,&b);
    for(int i=a;i<=b;i++)
    {
       c=two(i);
        printf("%d\n",c);
    }
    return 0;
}
int two(int n)//用数学方法来计算
{int i=1,m=0,a,d;
    while(1)
    {for(i=1;;i++)
    {a=pow(2,i);
        if(n%a==n)//找出最高位的1;
        {d=i-1;
            n=n-pow(2,d);//n减去已经求出的最高位1的值,继续求剩下的数的2进制表达;
            m=m+pow(10,d);//将求出的1的位数加上
         break;
        }
    }
        if(n==0)
            break;
        i=1;
    }
 
 return m;
}

将二进制输出为十进制

编写一个函数,其参数是一个整数N(N中只有1和0两个数字),返回值也是一个整数(假设是R),规则是整数N写
出来是R的二进制形式。例如:参数是1111,返回值应是15。主函数中输入多组数据,每个数据是一个只由0和1构成
的整数(二进制数),输出它对应的十进制整数。所有数据都在int型范围内。

输入样例:
0 1 10 11 1001 1111 110011 1111111
输出样例:
0
1
2
3
9
15
51
127
#include<stdio.h>
#include<math.h>
int ten(long long int a);
int main()
{long long int a;
 int b;
 while(scanf("%lld",&a)!=EOF)
 {
     b=ten(a);
     printf("%d\n",b);
 }
 return 0;
}
int ten(long long int a)
{int m=0,c,k=0;
    while(a>0)
    {c=a%10;
     if(c==1)
     m=m+pow(2,k);
     k++;
        a=a/10;
    }
 return m;
}

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值