中易网

求大神!不用数组的方法,C语言怎么编写十进制转换二进制和二进制转换十进制?注意是不用数组。还有c语

答案:2  悬赏:80  
解决时间 2021-01-16 00:05
  • 提问者网友:最美的风景
  • 2021-01-15 07:06
求大神!不用数组的方法,C语言怎么编写十进制转换二进制和二进制转换十进制?注意是不用数组。还有c语
最佳答案
  • 二级知识专家网友:醉吻情书
  • 2021-01-15 07:18
打印二进制数并没有现成的格式数值,只能自行编写函数打印。
以下是一个打印二进制值的函数,通过位操作,逐位判断二进制值,并输出对应的值。
默认高位0不输出。
void print_bin(int n)
{
int l = sizeof(n)*8;//总位数。
int i;
if(i == 0)
{
printf("0");
return;
}
for(i = l-1; i >= 0; i --)//略去高位0.
{
if(n&(1< }

for(;i>=0; i --)
printf("%d", (n&(1<}追问有没有更简洁的方法了追答这个代码已经是很简洁了。追问这只是函数主体吧 完整代码是不是加个#include
void main()
{
int n;
scanf("%d",&n);
print_bin(n);

}
就可以运行了?追答是的。你需要自己加main函数并调用这个就可以了。
全部回答
  • 1楼网友:几近狂妄
  • 2021-01-15 07:40
void decTobin(int d)
{
    char binary=0;
    if(d)
    {
        binary=(d&1)+'0';
        decTobin(d>>1);
    }
    if(binary) printf("%c",binary);
}void binTodec(int b) //用整型表示二进制,大小很有限
{
    int decimal=0,power=1;
    while(b)
    {
        decimal+=b%10*power;
        power*=2;
        b/=10;
    }
    printf("%d",decimal);
}追问大小很有限是什么意思?追答因为假如用int型的每一位表示二进制的每一位,能表示的最大的二进制数是
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息