社区
C++ 语言
帖子详情
如何实现任意输入一个二进制数,输出为十进制数
zhangyaowen
2004-08-11 09:55:10
如何实现任意输入一个二进制数,输出为十进制数?
...全文
1335
15
打赏
收藏
如何实现任意输入一个二进制数,输出为十进制数
如何实现任意输入一个二进制数,输出为十进制数?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
doact
2004-08-15
打赏
举报
回复
★★★ 那有哪位给个完整的程序。 ★★★
★★★ ★★★
★★★ 要求: ★★★
★★★ 输入一个2进制的数,C语言自动给输出一个10进制的数 ★★★
★★★ ★★★
★★★ 希望能给出详细点的注释,小弟刚出道不久...... ★★★
flyerlxg
2004-08-12
打赏
举报
回复
那是使用名称空间,我也是初学者,随便说说的,可能我记错了。
yangyu0806
2004-08-12
打赏
举报
回复
using namespace std;呢?
这句什么意思,没见main中出现过
expert2000
2004-08-12
打赏
举报
回复
int main()所以要return 0。
不知有没有库函数可以直接转换。
yangyu0806
2004-08-12
打赏
举报
回复
小弟初学有个地方不太懂,巴兄的程序里main的结尾为什么要return 0?
庄鱼
2004-08-12
打赏
举报
回复
随便说说,挑骨头的,不当真
庄鱼
2004-08-12
打赏
举报
回复
如果是任意的二进制数就有可能超出64位,也有可能是浮点数。上述的都是转为整型的情况,但其他的就无能为力了
寒雪叔叔
2004-08-12
打赏
举报
回复
用左移效率更高:
CString str = "11110010101101111";
long nCount = str.GetLength();
long nDest = 0;
for (long i = 0; i <= nCount - 1; i++)
{
TCHAR c = str.GetAt(i);
BYTE b = atoi(&c);
nDest = nDest << 1;
nDest += b;
}
TRACE("%d", nDest);
寒雪叔叔
2004-08-12
打赏
举报
回复
CString str = "11110010101101111";
long nCount = str.GetLength();
long nDest = 0;
for (long i = 0; i <= nCount - 1; i++)
{
TCHAR c = str.GetAt(i);
BYTE b = atoi(&c);
nDest *= 2; //nDest << 1;
nDest += b;
}
TRACE("%d", nDest);
newegg2002
2004-08-12
打赏
举报
回复
至于num*2再加上它.那是将二进制转换为十进制的步骤,不理解,
///////////////////////////////////////
至于num*2再加上它.那是将二进制转换为十进制的步骤,不难理解,
newegg2002
2004-08-12
打赏
举报
回复
ch-'0' 是所输入字符所代表的数字,因为在巴兄的程序中,输入的数字实在字符型 ,比如输入'1','1'-'0'即为1,
至于num*2再加上它.那是将二进制转换为十进制的步骤,不理解,
还可以用栈,,
假设用整型数组BinNum[]作栈来存储输入的二进制数,,
int DecNum=0;
int PowNum=0;
for(int i=RealLength_BinNum-1;i>=0;i--,PowNum++)
{
DecNum=DecNum+BinNum[i]*pow(2,PowNum);
}
zhangyaowen
2004-08-12
打赏
举报
回复
num=num*2+ch-'0';
这句什么意思?
tangfulin
2004-08-12
打赏
举报
回复
用移位操作,最快了
但也容易出问题
新手勿用
doact
2004-08-11
打赏
举报
回复
有没有一个完整一点的代码。小弟也需要这个。
RookieStar
2004-08-11
打赏
举报
回复
#include<iostream>
using namespace std;
int main()
{
char ch;
int num=0;
while ((ch=cin.get())!='\n')
{
if (ch!='0' && ch!= '1')
{
cerr<<"INPUT ERROR!"<<endl;
exit(1);
}
num=num*2+ch-'0';
}
cout<<num<<endl;
return 0;
}
输入一个
十进制
数
转换成 八进制
数
输出
(java源码)
对于输入的
任意
一个非负
十进制
整
数
,打印
输出
与其等值的八进制
数
。java代码
实现
源码。
将
十进制
整
数
转换为二至九进制
输出
设计算法把一个
十进制
整
数
转换为二至九进制之间的
任意
进制
数
输出
Java
实现
控制台输入
任意
字符,转换成十六进制、
二进制
和
十进制
NULL 博文链接:https://mactavish.iteye.com/blog/1731735
JAVA
实现
十进制
整
数
(正负)转换为
二进制
输出
任意
输入一个
十进制
整
数
,包括正
数
负
数
,通过程序
实现
可以
输出
相应的
二进制
编码
十进制
转换到
二进制
、八进制、十六进制
C语言
实现
十进制
转换到
二进制
、八进制、十六进制
C++ 语言
64,683
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章