十进制转二进制(c语言基础训练)

/***************************
十进制转化二进制
除二取余法
****************************/
#include<stdio.h>
/*编写一个函数zhuan 将十进制a转换为二进制并打印到屏幕上*/
void zhuan(int a ){
    int i = 0 , stack[20] ,r ,s;   //简化程序 栈结构用数组代替
    do{
        r = a/2;    //商
        s = a%2;    //余数
        stack[i] = s;
        if(r!=0)
        {
            i++;
            a = r;  //a整除2的结果作为下一个整除2的对象
        }
    }while(r);
    for( ; i>=0 ; i--)
        printf("%d" , stack[i]);    //反向打印数组中的数
    printf("\n");
}
int main()
{
    int a;
    printf("输入一个十进制数:");
    scanf("%d", &a);
    zhuan(a);
    return 0;
}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 用C语言将十进制数转换成二进制数可以通过使用位移操作来实现。位移操作是指将一个整数的每一位都向左或向右移动一个指定的位数,从而得到一个新的数值。具体的实现方法是:从最低有效位开始,将十进制数不断右移,每次右移一位,将最低有效位的值保存起来,最终将保存的每一位的值组合在一起,就得到了对应的二进制数。 ### 回答2: 十进制转二进制是一种常见的编程问题,可以使用C语言编写一个程序来实现。下面是一个使用循环和位运算的简单示例: ```c #include <stdio.h> void decimalToBinary(int decimal) { int binary[32]; int i = 0; // 将十进制数转换为二进制数 while (decimal > 0) { binary[i] = decimal % 2; decimal = decimal / 2; i++; } // 反向输出二进制数 for (int j = i - 1; j >= 0; j--) { printf("%d", binary[j]); } printf("\n"); } int main() { int decimal; printf("请输入一个十进制数:"); scanf("%d", &decimal); printf("二进制数为:"); decimalToBinary(decimal); return 0; } ``` 以上代码首先定义了一个函数`decimalToBinary`,该函数接受一个十进制数作为参数,并将其转换为二进制数。在`decimalToBinary`函数中,我们使用了一个数组`binary`来存储二进制数的每一位,同时使用循环和位运算将十进制数转换为二进制数。然后,我们使用一个反向循环将二进制数逐位输出。 在主函数`main`中,我们首先接收用户输入的十进制数,然后调用`decimalToBinary`函数将其转换为二进制数并输出结果。 希望以上代码能够帮助你理解十进制转二进制C语言编码。 ### 回答3: 十进制转二进制C语言编码可以用循环和位运算来完成。下面是一个实例代码: ```c #include <stdio.h> void decimalToBinary(int decimal) { int binary[32]; int index = 0; if (decimal == 0) { printf("0"); return; } while (decimal > 0) { binary[index] = decimal % 2; decimal = decimal / 2; index++; } for (int i = index - 1; i >= 0; i--) { printf("%d", binary[i]); } } int main() { int decimal; printf("请输入一个十进制数:"); scanf("%d", &decimal); printf("转换为二进制数:"); decimalToBinary(decimal); return 0; } ``` 通过调用`decimalToBinary()`函数,将用户输入的十进制数转换为二进制数。算法中使用了数组`binary`来保存每个二进制位的值,然后通过循环遍历输出二进制位。如果输入的十进制数为0,则直接输出0。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值