十进制到二进制转换器c++
decimal to binary converter c++?
int inputNumber=0;
int divisionStore=0,modStore=0;
vector<int> mainVector;
cout << "nEnter a Number to Convert to Binary.n" << endl;
cin >> inputNumber;
do
{
modStore=inputNumber%2;
inputNumber=inputNumber/2;
mainVector.push_back(modStore);
}while(inputNumber!=1);
for (int i=0;i<mainVector.size();i++)
{
cout<<endl<<mainVector[i]<<endl;
}
似乎有一个逻辑错误,但我找不到错在哪里?程序没有打印正确的转换,因为循环似乎在它可以推入最后一个数字之前就结束了。
我认为你需要改变:
}while(inputNumber!=1)
:
}while(inputNumber!=0)
为什么不使用STL -即bitset
见http://www.cplusplus.com/reference/bitset/bitset/to_string/
可能在几行代码中完成!
似乎是一个非常复杂和低效的方法(如果我没有误解你的话)。您可能正在寻找位操作操作符,而不是/,%等。如果你真的想把它放在一个向量中,可以这样做:
while (inputNumber) {
mainVector.push_back(inputNumber & 1);
inputNumber >>= 1;
}
请注意,这将把最低有效位放在向量的开头,可能不是你想要的,但看起来这是你的代码试图做的。
我回答了类似的问题在这里,我使用递归函数
void decimal_to_binary(int decimal)
{
int remainder = decimal % 2;
if (decimal < 1)
return;
decimal_to_binary(decimal / 2);
cout << remainder;
}
inputNumber%2
是最低有效位,因此您的向量将以相反的顺序包含位。只需倒序循环vector。
while(inputNumber!=1)
-你必须在inputNumber!=0
时循环,否则你不会处理最后一位
#include<iostream>
using namespace std;
int main(){
int x,bin;
x=0 ,bin=0;
int ar[10000];
cout<<"Enter Decimal Number "<<endl;
cin>>x;
int n=0;
while(x>0){
bin=x%2;
x=x/2;
ar[n]=bin;
n++;
}
cout<<endl;
n=n-1;
for(n;n>=0;n--){
cout<<ar[n]; }
cout<<endl;
return 0;
}
/* Try this */
相关文章:
- 转换器练习:跳过 if 语句和 if 语句
- 使用转换器提升 Python 问题 - 静态链接
- 我写的 ASCII 到二进制转换器C++向后显示二进制,如何使其正确显示?
- 十进制到二进制转换器 c++
- 用于 boost::p roperty_tree 的通用枚举转换器
- 为什么我的C++基转换器中出现分段错误?
- 将字节数组转换为对象C++ |C++中的 C# 位转换器
- 英语到摩尔斯电码转换器
- 我用c++做了一个转换器,把英里转换成公里,把公里转换成英里,把赛尔修斯转换成法赫伦海特,把法赫伦海特转换成赛尔修斯
- 使用 Json 转换器反序列化 WCF 服务中的C++字符串
- 十进制,包括负到 32 位二进制转换器
- 标准::映射转换器模板
- 英里到千克转换器练习的小语法错误
- 句子转换器在存在新行的情况下不起作用
- 在C Windows程序中获取A/D转换器示例程序
- ROS中未定义的参考误差到OpenCV图像转换器
- 表达式到C++类类型转换器/类型转换
- 这里怎么了?单位转换器
- 华氏度到摄氏转换器C
- 如何理解 c++ 中的 MNIST 二进制转换器?