| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1134 人关注过本帖
标题:十进制转二进制
只看楼主 加入收藏
qiqicai
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2021-3-23
结帖率:84.62%
收藏
已结贴  问题点数:20 回复次数:3 
十进制转二进制
#include <stdio.h>
#include <math.h>
 
long long convertDecimalToBinary(int n);
 
int main()
{
    int n;
    printf("输入一个十进制数: ");
    scanf("%d", &n);
    printf("十进制数 %d 转换为二进制位 %lld", n, convertDecimalToBinary(n));
    return 0;
}
 
long long convertDecimalToBinary(int n)
{
    long long binaryNumber = 0;
    int remainder, i = 1, step = 1;
 
    while (n!=0)
    {
        remainder = n%2;
        printf("Step %d: %d/2, 余数 = %d, 商 = %d\n", step++, n, remainder, n/2);
        n /= 2;
        binaryNumber += remainder*i;                               // 这个为什么不用判断n=0的情况
        i *= 10;
    }
    return binaryNumber;                                       


                                                                     
                                                                 

      
}

[此贴子已经被作者于2021-4-10 22:57编辑过]

搜索更多相关主题的帖子: int long printf 二进制 十进制 
2021-04-10 22:12
夏天q
Rank: 4
来 自:七月
等 级:业余侠客
威 望:5
帖 子:33
专家分:227
注 册:2021-4-4
收藏
得分:20 
while (n!=0)

看这里,n=0是不会进入循环的 所以不用判断n=0的情况
2021-04-11 09:31
qiqicai
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2021-3-23
收藏
得分:0 
回复 2楼 夏天q
它这里并没有陈述n=0的情况  如果输入的十进制数是0 我运行后却能正确输出二进制也是0   这是为什么?
2021-04-11 10:42
夏天q
Rank: 4
来 自:七月
等 级:业余侠客
威 望:5
帖 子:33
专家分:227
注 册:2021-4-4
收藏
得分:0 
回复 3楼 qiqicai
long long convertDecimalToBinary(int n)
{
    long long binaryNumber = 0;
    int remainder, i = 1, step = 1;
 
    while (n!=0)
    {
        remainder = n%2;
        printf("Step %d: %d/2, 余数 = %d, 商 = %d\n", step++, n, remainder, n/2);
        n /= 2;
        binaryNumber += remainder*i;                               // 这个为什么不用判断n=0的情况
        i *= 10;
    }
    return binaryNumber;                                       


                                                                     
                                                                 

      
}

中定义了变量binaryNumber的值为0;
  long long binaryNumber = 0;

如果n=0 则不进入循环 变量binaryNumber的值不会变 依旧为0
所以    return binaryNumber;   返回0
恰好0的二进制为0
2021-04-11 11:13
快速回复:十进制转二进制
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023279 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved