使用 for 循环更改二进制数>十进制数
Changing Binary Number > Decimal Number Using For Loop
我想将二进制号码更改为十进制数字。
我的问题是我的程序甚至不会输入for
循环,因此我的总和总是0。我不知道我的for
循环的错误在哪里。
我的想法是,对于像1010这样的数字,我将其除以10,并获得0个数字,然后用2^0乘以它,然后将1010除以10,为101和101循环继续。
这是我到目前为止尝试过的:
cout<<"Please Enter a Binary Digit Number"<<endl;
cin>>num;
sum=0;
x=0;
for (int i=num; i/10 == 0; i/10) {
sum+=num%10*2^x;
num/=10;
x++;
}
cout<<sum;
大概是您邀请用户在控制台处输入二进制字符串。在这种情况下,您必须将数字作为字符串收集。
更像这样的东西?
using namespace std;
std::string bin;
cout<<"Please Enter a Binary Digit Number"<<endl;
cin>>bin;
int sum=0;
int bit=1;
for (auto current = std::rbegin(bin) ; current != std::rend(bin) ; ++current, bit <<= 1)
{
if (*current != '0')
sum |= bit;
}
cout<<sum << std::endl;
或C 11之前(我认为这是一个学校项目 - 他们可能有过期的套件):
for (auto current = bin.rbegin() ; current != bin.rend() ; ++current, bit <<= 1)
{
if (*current != '0')
sum |= bit;
}
working:-
#include<iostream>
using namespace std;
int num,sum,x;
int main()
{
cout<<"Please Enter a Binary Digit Number"<<endl;
cin>>num;
sum=0;
x=0;
long base=1,dec=0;
//Binary number stored in num variable will be in loop until its value reduces to 0
while(num>0)
{
sum=num%10;
//decimal value summed ip on every iteration
dec = dec + sum * base;
//in every iteration power of 2 increases
base = base * 2;
//remaining binary number to be converted to decimal
num = num / 10;
x++;
}
cout<<dec;
return 0;
}
相关文章:
- visual在c++中将十进制数转换为二进制数
- C++从二进制转换为十进制数
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- 将分数转换为十进制数并对其进行排序
- 使用标准库计算字符串中的十进制数
- (第 1 位 + 第 2 位)以十进制数表示
- 如何通过输入十进制数打印UTF-8符号?
- 如何使用链表将负十进制数转换为二进制?
- 二进制反转为十进制数
- 以C++格式将十六进制字符串转换为十进制数
- 如何在C++中使用setiosflags打印出十进制数作为八进制数
- 将字节数组转换为 C++ 中的十进制数
- 为什么如果(!(cin >> int)) 在第一次迭代中接受十进制数,但不接受其他十进制数?
- 在 c++ 中使用 setfill() 以特定格式打印十进制数
- 您能否给我一个 16 位(或更多)十进制数,该十进制数仅在第 15 位正确转换为双精度浮点圆
- 使用堆栈将十进制数转换为二进制数
- 如何确定十进制数的完美幂?
- 使用 for 循环更改二进制数>十进制数
- 将浮点数转换为字符串,并指定精度和十进制数字数?
- 我想显示序列 ftom 16 到 31 十进制数,但它没有显示:谁能在这里帮助我