gpt4 book ai didi

c++ - 我正在使用C++应用程序将二进制转换为十进制数字

转载 作者:行者123 更新时间:2023-12-02 10:35:56 25 4
gpt4 key购买 nike

我正在使用C++应用程序,将二进制数转换为十进制数,当前我有一个正在运行的应用程序,但是现在出现了问题,因为它必须具有中间结果。

既然我知道纸上的对话,而且我知道C++的基础知识,我不认为这会很困难,但是我需要一些帮助,我不需要您为我编写它,我需要有人来帮忙我朝着正确的方向前进,所以我可以自己解决。
如果我将1100转换为小数,则中间结果将必须是这样的:

--------------- 
0 * 2⁰ = 0
0 * 2¹ = 0
1 * 2² = 4
1 * 2³ = 8
-----------------

最终将是12(8 + 4 + 0 + 0 = 12)

到目前为止的代码可以在这里找到: https://paste.ubuntu.com/p/fP2GfT5Pzq/
及以下
#include <iostream>
#include <cmath>

using namespace std;

int binary_to_decimal(long long);

int main()
{
long long number;
cout << "Please enter the Binary you wish to convert: " << endl;
cin >> number;

cout << "In binary : '" << number << "' In decimal: '" << binary_to_decimal(number) << "'" << endl;
}

int binary_to_decimal(long long number)
{
int decimal_number = 0, i = 0, remainder;
while (number != 0)
{
remainder = number % 10;

// Number = number divided by then
number /= 10;

// decimal_number = decimal_number + remainder to the power of 2
decimal_number += remainder * pow(2, i);
++i;
}
return decimal_number;
}

希望你能帮到:)

最佳答案

如果您只想打印中间结果,那么您就很接近了。由于您非常亲密,所以我唯一能给您的提示是:您需要在while循环中打印内容。这是代码,如果您不想的话,不必看它:)

cout << "---------------" << endl;
while (number != 0)
{
remainder = number % 10;

number /= 10;

int digit = remainder * pow(2,i);
decimal_number += digit;

cout << remainder << " * (2^" << i << ") = " << digit << endl;
++i;
}
cout << "---------------" << endl;

关于c++ - 我正在使用C++应用程序将二进制转换为十进制数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60311013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com