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

}





                                                                                                               
                                                                                                               
                                                                                                               
                                                                                                               

搜索更多相关主题的帖子: int 二进制 十进制 printf 进制 
2021-04-10 22:47
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1509
专家分:9241
注 册:2010-3-16
收藏
得分:0 
int s,ys,i=1;
unsigned long long er=0;
if(m==2){
    while(n!=0)
    {
        ys=n%2;
        n=n/2;
        er+=ys*i;
        i=i*10;                                                              
    }
    printf("\n%d进制数为:%llu",m,er);
    return 0;
}


用ull存储结果最大输入值是1023,可以改用数组保存二进制每一位
2021-04-11 00:05
qiqicai
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2021-3-23
收藏
得分:0 
回复 2楼 apull
首先感谢你的知导    但是我想问一下%llu是用来输出二进制的吗  就像%d用来输出十进制但我在网上查说没有输出二进制的写法   那这个是什么呢
2021-04-11 10:58
夏天q
Rank: 4
来 自:七月
等 级:业余侠客
威 望:5
帖 子:33
专家分:227
注 册:2021-4-4
收藏
得分:1 
回复 3楼 qiqicai
%llu 是用来输出 unsigned long long 类型的值
使用unsigned long long 是因为它的取值范围很大
2021-04-11 11:35
qiqicai
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2021-3-23
收藏
得分:0 
回复 4楼 夏天q
#include <stdio.h>
int main()
{
int n,m;
printf("输入十进制数:");
scanf("%d",&n);
printf("输入转换的进制数:");
scanf("%d",&m);
int s,ys,er,i;
if(m==2){
while(n!=0)
{
n=n/2;                          那我这个不对是因为%lld的取值范围不够大吗   还是因为哪个unsigned呢
ys=n%2;
er=+ys*i;
i=i*10;                                                              
}
printf("%d进制数为:%lld",m,er);
return 0;
}

}
2021-04-12 20:55
夏天q
Rank: 4
来 自:七月
等 级:业余侠客
威 望:5
帖 子:33
专家分:227
注 册:2021-4-4
收藏
得分:0 
回复 5楼 qiqicai
虽然说你的输出格式是%lld(long long int)
int s,ys,er,i;
但这里定义的er是为int类型
unsigned long long是指无符号的long long int类型 因为转换的二进制数为正数 相对有符号的long long int取值范围更大
2021-04-12 22:15
快速回复:十进制转二进制
数据加载中...
 
   



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

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