文籽籽 发表于 2022-3-21 12:27:46

十进制转二进制代码输出结果跟实际不符不知道哪里错了

#include<stdio.h>
void change_to_binary(int num)//转换函数
{
        int temp_binary = num%2;//除2取余
        num=num/2;//用除以2得到的商继续除以2
       
        if(num)
          change_to_binary(num);//逆序输出每一位余数,即转换后的二进制数
        printf("%d",temp_binary);
       
}

int main()
{
        int DecimalNum = 0;//定义一个整型变量存放十进制度数
       printf("请输入十进制数:");
        scanf("%d.&DecimalNum");//输入一个十进制数
        printf("二进制是:");
        change_to_binary(DecimalNum);//调用转换函数将其转为二进制数
       
        printf("\n");
        return 0;
}



大佬们帮忙看看哪里错了

傻眼貓咪 发表于 2022-3-21 12:52:23

#include <stdio.h>

void binary(int num){
        if(!num) return;
        binary(num/2);
        printf("%d", num%2);
}

int main(){
        binary(8);
        return 0;
}1000

jhq999 发表于 2022-3-21 13:25:27

傻眼貓咪 发表于 2022-3-21 12:52


binary(num/2);//换成binary(num>>1);
printf("%d", num%2);//换成printf("%d", num&1);

傻眼貓咪 发表于 2022-3-21 13:27:25

jhq999 发表于 2022-3-21 13:25


我也想,但担心楼主不明白,所以选择用楼主的代码方式呈现
页: [1]
查看完整版本: 十进制转二进制代码输出结果跟实际不符不知道哪里错了