4.13 十进制/二进制转化器(C语言实现)

【题目描述】编写一个程序,将输入的十进制数转化为二进制表示。例如:输入十进制数64,输出二进制数1000000.

【代码实现】

c 复制代码
// 十进制/二进制转化器
# include <stdio.h>
int main()
{
    int num;
    printf("Please input a number:");
    scanf("%d", & num); // 输入十进制数 
    int a[50] = {0}, len = 0;
    if (num == 0) { // 十进制数0的二进制表示是0 
        ++len;
    }
    int tmp_num = num;
    while (tmp_num) { // 除2取余 
        a[len++] = tmp_num % 2;
        tmp_num /= 2;
    }
    printf("%d's binary representation:", num);
    for (int i = len - 1; i >= 0; --i) { // 逆序输出 
        printf("%d", a[i]);
    }
    return 0;
} 

【书上参考答案】

c 复制代码
# include "stdio.h"
# include <conio.h>
void deTobi(int a) // 将十进制数转化为二进制数,并打印在屏幕上 
{
    int i = 0, stack[10], r, s;
    do {
        r = a / 2; // 商
        s = a % 2; // 余数
        stack[i] = s;
        if (r != 0) {
            ++i;
            a = r; // 将a整除2的结果作为下一个整除2的对象 
        } 
    } while (r); // 循环直到商r为0为止
    for (; i >= 0; --i) {
        printf("%d", stack[i]);
    } 
    printf("\n");
}

int main()
{
    int a;
    printf("Please input a Decimal digit\n");
    scanf("%d", & a);
    deTobi(a);
    getche();
    return 0;
}
相关推荐
一路往蓝-Anbo11 小时前
C语言从句柄到对象 (一) —— 全局变量的噩梦与“多实例”的救赎
c语言·开发语言·stm32·单片机·嵌入式硬件·物联网
松涛和鸣11 小时前
DAY42 SQLite3 : Dictionary Import and Data Query Implementation with C Language
linux·c语言·数据库·单片机·网络协议·sqlite
水饺编程12 小时前
Visual Studio 软件操作:添加附加依赖项
c语言·c++·windows·visual studio
一路往蓝-Anbo12 小时前
C语言从句柄到对象 (三) —— 抛弃 Malloc:静态对象池与索引句柄的终极形态
c语言·开发语言·数据结构·stm32·单片机·算法
序属秋秋秋12 小时前
《Linux系统编程之进程控制》【进程创建 + 进程终止】
linux·c语言·c++·操作系统·进程·进程创建·进程终止
一路往蓝-Anbo13 小时前
C语言从句柄到对象 (二) —— 极致的封装:不透明指针与 SDK 级设计
c语言·开发语言·数据结构·stm32·单片机·嵌入式硬件
上天_去_做颗惺星 EVE_BLUE13 小时前
C++学习:学生成绩管理系统
c语言·开发语言·数据结构·c++·学习
水饺编程13 小时前
开源项目介绍:VirtuaNES 模拟器
c语言·c++·windows·visual studio
weixin_4568083813 小时前
【沁恒蓝牙开发】2.4G PHY TX 数据流程
c语言
Sɪʟᴇɴᴛ໊ོ23513 小时前
C语言getchar()函数详解
c语言